методы c # не работают в той последовательности, в которой я их написал - PullRequest
0 голосов
/ 02 октября 2018

Я получил два стандартных проекта в решении.Пользовательский интерфейс и логика.Как обычно, вам нужно взять входные данные из пользовательского интерфейса и делать все, что вы хотите с ними в серверной части.

Итак, в классе пользовательского интерфейса, у меня есть

        private void btnAddItems_Click(object sender, RoutedEventArgs e)
    {
        item_name = lbl_item_name.Text;
        item_quantity = lbl_item_quantity.Text;
        store_ime = store_Name.Text;


        logika.storeInDb(store_ime, item_name, item_quantity);
    }

Этопросто сохраняет входные данные в переменных и затем отправляет их этому

        public void storeInDb(string store_name, string item_name, string item_quantity)
    {
        using (MySqlConnection mySqlConn = new MySqlConnection(Logic.connStr))
        {
            dbInsert($"INSERT INTO soping(store_name, item_name, item_quantity, payment_type, date) VALUES('{store_name}', '{item_name}', '{item_quantity}', 'visa', 'danas')");
        }
    }

И это метод dbInsert

        public void dbInsert(string query)
    {
        using (MySqlConnection mySqlConn = new MySqlConnection(Logic.connStr))
        {
            try
            {
                mySqlConn.Open();

                MySqlCommand cmd = new MySqlCommand(query, mySqlConn);
                cmd.ExecuteNonQuery();

                mySqlConn.Close();
            }
            catch (MySqlException e)
            {
                System.Diagnostics.Debug.WriteLine(e);
            }
        }
    }

Он ничего не хранит.И когда я использую точки останова, создается впечатление, что метод button запускается после storeInDb, хотя переменные в запросе и так хороши.И я не могу найти ничего плохого в коде, который заставил бы его вести себя так странно.

1 Ответ

0 голосов
/ 02 октября 2018

У этого кода есть некоторые проблемы:

1 - вы должны использовать параметры вместо прямых строк в вашем запросе sql;

2 - вам не нужно соединение вне вашего метода dbInsert

Однако этот код должен работать.Я полагаю, что проблема, с которой вы столкнулись, находится в другом месте , а не в коде, который вы разместили здесь.Что-то попроще, может быть проблема со связью (сохранение в другом месте, где вы этого не ожидаете) или неправильное использование потоков ... Возможно, возникновение взаимоблокировок, длительная обработка или что-то в этом роде (единственный способ, которым я могу думать о том, что нажатие кнопки, очевидно, происходит после кода, который он вызывает).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...