更新保存在错误的列中

时间:2017-08-21 20:19:46

标签: c#

我正在开发winforms应用程序,并尝试在点击按钮时保存数据以访问数据库。我正在使用更新方法(这不是我第一次使用它),但出于某种原因,当我保存数据时,保存在数据库中的值保存错误。 有人可以帮我指出我做错了什么或是否有错误?

     string cb = "UPDATE Config SET features = @features, pricecost = @pricecost, price1 = @price1, tax = @tax, margem = @margem, price = @price, barcode = @barcode WHERE Code = @code";
        cmd = new OleDbCommand(cb, con);
        cmd.Parameters.Add("@features", OleDbType.VarChar).Value = txtFeatures.Text;
        cmd.Parameters.Add("@price", OleDbType.VarChar).Value = txt_Price.Text;
        cmd.Parameters.Add("@price1", OleDbType.VarChar).Value = txt_pricewithouttax.Text;
        cmd.Parameters.Add("@margem", OleDbType.VarChar).Value = txt_margem.Text;
        cmd.Parameters.Add("@pricecost", OleDbType.VarChar).Value = txt_pricecost.Text;
        cmd.Parameters.Add("@tax", OleDbType.VarChar).Value = txt_tax.Text;
        cmd.Parameters.Add("@barcode", OleDbType.VarChar).Value = txtBarcode.Text;
        cmd.Parameters.Add("@code", OleDbType.VarChar).Value = txtCode.Text;

例如,@ price1和txt_margem.Text中的txt_Price.Text保存保存在@price ...

我该怎么做才能解决这个问题?

谢谢

1 个答案:

答案 0 :(得分:1)

您正在使用与Access的OleDB连接,即所谓的“Microsoft Jet”。它的出名之处在于根本没有匹配参数名称,而是通过序数来代替。

您需要完全按照命令文本中显示的顺序添加参数,并且不能使用相同的参数两次,例如在SQL Server中。

观察您的数据类型,在varchar要求解决问题时存储价格。