以前一直使用OleDbDataAdapter的方式更新数据库,今天我试了一下用OleDbCommand的方式更新数据库出现了莫名其妙的错误。
环境:Sql Server 2005
使用如下代码:
string
strSql
=
"
UPDATE M_Employee set EMPLOYEENAME = @EMPLOYEENAME where EMPLOYEEID = @EMPLOYEEID
"
;
using (OleDbCommand Comm = new OleDbCommand(strSql, olecn))
{
Comm.Parameters.Add(new OleDbParameter("@EMPLOYEENAME", OleDbType.VarChar)).Value = "ddd";
Comm.Parameters.Add(new OleDbParameter("@EMPLOYEEID", OleDbType.VarChar)).Value = EmployeeID;
Comm.ExecuteNonQuery();
}
一直报错:必须声明标量变量@EMPLOYEENAME
using (OleDbCommand Comm = new OleDbCommand(strSql, olecn))
{
Comm.Parameters.Add(new OleDbParameter("@EMPLOYEENAME", OleDbType.VarChar)).Value = "ddd";
Comm.Parameters.Add(new OleDbParameter("@EMPLOYEEID", OleDbType.VarChar)).Value = EmployeeID;
Comm.ExecuteNonQuery();
}
害我调试了n个小时,不行。
换了下面的方式就可以了
string
strSql
=
"
UPDATE M_Employee set EMPLOYEENAME = ? where EMPLOYEEID = ?
"
;
using (OleDbCommand Comm = new OleDbCommand(strSql, olecn))
{
Comm.Parameters.Add(new OleDbParameter("@P1", OleDbType.VarChar)).Value = "ddd";
Comm.Parameters.Add(new OleDbParameter("@P2", OleDbType.VarChar)).Value = EmployeeID;
Comm.ExecuteNonQuery();
}
using (OleDbCommand Comm = new OleDbCommand(strSql, olecn))
{
Comm.Parameters.Add(new OleDbParameter("@P1", OleDbType.VarChar)).Value = "ddd";
Comm.Parameters.Add(new OleDbParameter("@P2", OleDbType.VarChar)).Value = EmployeeID;
Comm.ExecuteNonQuery();
}
不明白是什么原因,是我代码有问题,还是oledb有问题??
本文转自永春博客园博客,原文链接:http://www.cnblogs.com/firstyi/archive/2007/08/10/851097.html,如需转载请自行联系原作者