执行oledbcommand qith更新查询不会更新数据表

时间:2019-05-03 00:01:43

标签: c# sql oledb oledbcommand

我有以下代码

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();

我已经阅读了所有documentation。所以我正在使用?在查询中使用addwithvalue作为传递参数的方法。我检查了查询,没有错误(至少我没有看到它)。 最糟糕的是,在执行的结果中,参数effect的值为1,据我了解,这意味着有一行受影响,但是当我重新加载数据表时,数据库。

编辑:我添加了一些代码。两者的使用部分相同,选择的一个正在工作并提供正确的库存,更新编号。

编辑2:指向数据库的路径

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

0 个答案:

没有答案