具有访问表(CustomersTable)和两个字段(CustomerID,CustomerName):
command.CommandText = "UPDATE CustomersTable SET CompanyName = @p2 WHERE CompanyName = @p1";
command.Parameters.Clear();
command.Parameters.Add("@p1", OleDbType.VarChar).Value = "xyz3";
command.Parameters.Add("@p2", OleDbType.VarChar).Value = "xyz4";
command.ExecuteNonQuery();不更改CompanyName字段。
发布于 2014-12-12 23:09:19
OleDbCommand不支持命名参数。
来自 property
OLE DB .NET提供程序不支持将参数传递给
OleDbCommand在CommandType设置为Text时调用的参数或存储过程的命名参数。在这种情况下,问号(?)必须使用占位符。例如: 从客户中选择* CustomerID =? 因此,将OleDbParameter对象添加到OleDbParameterCollection中的顺序必须直接对应于命令文本中参数的问号占位符的位置。
实际上,使用?并不是必须的,但它是一个逗号。
还可以使用 statement来释放数据库连接和对象。
using(OleDbConnection con = new OleDbConnection(conString))
using(OleDbCommand command = con.CreateCommand())
{
command.CommandText = "UPDATE CustomersTable SET CompanyName = ? WHERE CompanyName = ?";
command.Parameters.Add("@p1", OleDbType.VarChar).Value = "xyz3";
command.Parameters.Add("@p2", OleDbType.VarChar).Value = "xyz4";
con.Open();
command.ExecuteNonQuery();
}https://stackoverflow.com/questions/27453503
复制相似问题