c#中编写Oracle的SQL语句命令并传递参数的问题.
ff167 2007-07-24 03:07:44 最近才用oracle,发生了点问题
连接等用的是Oracle.DataAccess.Client类
以下是对同一份表(MEMBER)的操作,ID是NUMBER(10),MEMBERNAME是VARCHAR2(50)
DB db = new DB();
OracleParameter[] OraParams = new OracleParameter[1];
OraParams[0] = new OracleParameter("ID", OracleDbType.Int32, 10, 2, ParameterDirection.Input);
DataTable dt = db.GetRecord("select * from et_member where ID = :ID", OraParams);
这样的查询语句,是正常的,能查出正确的结果.
然而
DB db = new DB();
OracleParameter[] OraParams = new OracleParameter[2];
OraParams[0] = new OracleParameter("ID", OracleDbType.Int32, 2, 10, ParameterDirection.Input);
OraParams[1] = new OracleParameter("MemberName", OracleDbType.Varchar2, 50, "xxxy", ParameterDirection.Input);
db.ExecuteNonQuery("update et_member set MemberName=:MemberName where ID = :ID", OraParams);
这样写的语句,却报ORA01722 无效数字错误.
如果两个参数都是字符串(当然WHERE里要修改),程序就又没有错了.怎么回事?是NUMBER对应的类型问题还是什么问题?