Выполнение команды oledb с запросом на обновление не обновляет - PullRequest
0 голосов
/ 03 мая 2019

У меня есть следующий код

using (OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Login.DB_Path + ";Jet OLEDB:Database Password=*************"))
        {
            conn.Open();
            OleDbCommand cmd = new OleDbCommand
            {
                Connection = conn,
                CommandText = string.Format("SELECT {1} FROM {0} WHERE {2} = ? AND {3} = ? AND {4} = ? AND {5} = ?",
                Constants.tbnm_stock_collapsed,
                Constants.clnm_Stock,
                Constants.clnm_modelo,
                Constants.clnm_colores,
                Constants.clnm_tallas,
                Constants.clnm_tenda)
            };
            cmd.Parameters.AddWithValue("?", int.Parse(model));
            cmd.Parameters.AddWithValue("?", int.Parse(color));
            cmd.Parameters.AddWithValue("?", int.Parse(talla));
            cmd.Parameters.AddWithValue("?", Sendfrom_CB.SelectedIndex);
            var var_stock = cmd.ExecuteScalar();
            int stock;
            int.TryParse(Send_Count_TB.Text,out stock);
            stock = int.Parse(var_stock.ToString()) - stock;
            cmd = new OleDbCommand
            {
                Connection = conn,
                CommandText = string.Format("UPDATE {0} SET {1} = ? WHERE {2} = ? AND {3} = ? AND {4} = ? AND {5} = ?",
                Constants.tbnm_stock_collapsed,
                Constants.clnm_Stock,
                Constants.clnm_modelo,
                Constants.clnm_colores,
                Constants.clnm_tallas,
                Constants.clnm_tenda)
            };
            cmd.Parameters.AddWithValue("?", stock);
            cmd.Parameters.AddWithValue("?", int.Parse(model));
            cmd.Parameters.AddWithValue("?", int.Parse(color));
            cmd.Parameters.AddWithValue("?", int.Parse(talla));
            cmd.Parameters.AddWithValue("?", Sendfrom_CB.SelectedIndex);
            int effect = cmd.ExecuteNonQuery();

Я прочитал всю документацию . Так я использую? в запросе и addwithvalue как метод для передачи параметра. Я проверил запрос, и нет ошибки (по крайней мере, я не вижу его). Хуже всего то, что в результате выполнения параметр effect имеет значение 1, так как я понимаю, это будет означать, что затронута строка, но когда я перезагружаю таблицу данных, в БД изменений нет .

РЕДАКТИРОВАТЬ: я добавил немного кода. Используемая часть одинакова для обоих, выбранная часть работает и дает правильный запас, номер обновления

РЕДАКТИРОВАТЬ 2: Путь к БД

public static string DB_Path = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\folder" + "\\DB.accdb";
...