我正在开发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 ...
我该怎么做才能解决这个问题?
谢谢
答案 0 :(得分:1)
您正在使用与Access的OleDB连接,即所谓的“Microsoft Jet”。它的出名之处在于根本没有匹配参数名称,而是通过序数来代替。
您需要完全按照命令文本中显示的顺序添加参数,并且不能使用相同的参数两次,例如在SQL Server中。
观察您的数据类型,在varchar要求解决问题时存储价格。