使用Access表(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();
Run Code Online (Sandbox Code Playgroud)
不会更改CompanyName字段.
OleDbCommand 不支持命名参数.
OLE DB .NET提供程序不支持将参数传递给SQL语句或由
OleDbCommandwhenCommandType设置为调用的存储过程的命名参数Text.在这种情况下,必须使用问号(?)占位符.例如:SELECT*FROM Customers WHERE CustomerID =?
因此,
OleDbParameter对象添加到的对象OleDbParameterCollection必须直接对应于命令文本中参数的问号占位符的位置.
实际上,使用?不是必须的,但它是一个指挥官.
还使用usingstatement来处理数据库连接和对象.
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();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3256 次 |
| 最近记录: |