Microsoft's own documentation 提供了一个删除记录的示例,如下所示:
// 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;
但是在我的系统上它不起作用(提示缺少@CustomerID)。相反,如果我更换
command.Parameters.Add("@CustomerID", SqlDbType.NChar, 5, "CustomerID");
以上与
command.Parameters.AddWithValue("@CustomerID", 5);
It works 。
为什么?
最佳答案
在这一行:
command.Parameters.Add("@CustomerID", SqlDbType.NChar, 5, "CustomerID");
在此重载中,5 指的是参数的长度,而不是值。如果要添加该值,则必须添加以下内容:
command.Parameters["@CustomerID"].Value = "5";
关于c# - SqlDataAdapter.DeleteCommand() 可与 AddWithValue() 一起使用,但不能与 Add() 一起使用 - 为什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12906673/