Not*_*arp 3 c# sql-server sqldataadapter
Microsoft自己的文档提供了删除记录的示例,如下所示:
// Create the DeleteCommand.
command = new SqlCommand(
"DELETE FROM Customers WHERE CustomerID = @CustomerID", connection);
// Add the parameters for the DeleteCommand.
parameter = command.Parameters.Add(
"@CustomerID", SqlDbType.NChar, 5, "CustomerID");
parameter.SourceVersion = DataRowVersion.Original;
adapter.DeleteCommand = command;
Run Code Online (Sandbox Code Playgroud)
但在我的系统上它不起作用(抱怨缺少@CustomerID).相反,如果我更换
command.Parameters.Add("@CustomerID", SqlDbType.NChar, 5, "CustomerID");
Run Code Online (Sandbox Code Playgroud)
以上
command.Parameters.AddWithValue("@CustomerID", 5);
Run Code Online (Sandbox Code Playgroud)
它有效.
为什么?
在这一行:
command.Parameters.Add("@CustomerID", SqlDbType.NChar, 5, "CustomerID");
Run Code Online (Sandbox Code Playgroud)
在此重载中,5表示参数的长度,而不是值.如果要添加值,则必须添加以下内容:
command.Parameters["@CustomerID"].Value = "5";
Run Code Online (Sandbox Code Playgroud)