DataAdapter.UpdateCommand不工作c#? [英] DataAdapter.UpdateCommand not working c#?

查看:177
本文介绍了DataAdapter.UpdateCommand不工作c#?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用此代码来更新数据库中表中的SOME列。但是每次尝试这样做时,都会出现一个错误。

I am using this code to update "SOME" columns in a table in my database. But everytime I try to do so an error is given.

没有给出一个或多个所需参数的值。

con.Open();
SlipDA = new OleDbDataAdapter();
string sqlUpdate = "Update tbl_Slip SET RaiseBasic=@RaiseBasic, OtherDed=@OtherDed, Arrears=@Arrears, Notes=@Notes WHERE SlipNo=@SlipNo";

SlipDA.UpdateCommand = new OleDbCommand(sqlUpdate, con);
SlipDA.UpdateCommand.Parameters.AddWithValue("@RaiseBasic", Convert.ToInt32(dRow[4].ToString()));
SlipDA.UpdateCommand.Parameters.AddWithValue("@OtherDed", Convert.ToInt32(dRow[5].ToString()));
SlipDA.UpdateCommand.Parameters.AddWithValue("@Arrears", Convert.ToInt32(dRow[7].ToString()));
SlipDA.UpdateCommand.Parameters.AddWithValue("@Notes", dRow[8].ToString());
SlipDA.UpdateCommand.Parameters.AddWithValue("@SlipNo", dRow[0].ToString());

SlipDA.UpdateCommand.ExecuteNonQuery();
con.Close();

该表包含9列,但我只想更新一些。

The table contains 9 columns but I only want to update a few.

推荐答案

可能是问题:


当CommandType设置为Text时,OLE DB .NET提供程序不支持将
参数传递给SQL语句或由
OleDbCommand调用的存储过程的命名参数。在这种情况下,必须使用
问号(?)占位符。例如:SELECT * FROM
客户WHERE CustomerID =?

The OLE DB .NET Provider does not support named parameters for passing parameters to an SQL statement or a stored procedure called by an OleDbCommand when CommandType is set to Text. In this case, the question mark (?) placeholder must be used. For example: SELECT * FROM Customers WHERE CustomerID = ?

源:这个

so基本上你的查询应该是这样的:

so basically your query should be like this :

string sqlUpdate = "Update tbl_Slip SET RaiseBasic= ?, OtherDed= ?, Arrears= ?, Notes= ? WHERE SlipNo= ?";

这篇关于DataAdapter.UpdateCommand不工作c#?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆