快要崩溃了,看看这两段程序有什么不懂,虽然很基础,但我怎么也找不出区别(34分)

  • 主题发起人 主题发起人 自由使者
  • 开始时间 开始时间

自由使者

Unregistered / Unconfirmed
GUEST, unregistred user!
程序1:
string InsertCmd="insert into oper(USR_ID,USR_NAME,PASSWORD,OPER_FLAG,STATUS,ORG_ID) values('"+usrid_box.Text+"','"+usrname_box.Text+"','"+"888888"+"',"+"0"+","+usrstatus_cmbox.SelectedIndex+",'"+organid_box.Text+"')";
OracleCommand addcommand=new OracleCommand(InsertCmd,usraddconnection);
程序2:
string InsertCmd="insert into oper(USR_ID,USR_NAME,PASSWORD,OPER_FLAG,STATUS,ORG_ID) values(@usrid,@usrname,'888888','0',@status,@orgid)";
OracleCommand addcommand=new OracleCommand(InsertCmd,usraddconnection);
addcommand.Parameters.Add(new OracleParameter("@usrid",OracleType.NVarChar,6));
addcommand.Parameters["@usrid"].Value=usrid_box.Text;

addcommand.Parameters.Add(new OracleParameter("@usrname",OracleType.NVarChar,10));
addcommand.Parameters["@usrname"].Value=usrname_box.Text;

addcommand.Parameters.Add(new OracleParameter("@status",OracleType.NVarChar,1));
addcommand.Parameters["@status"].Value=usrstatus_cmbox.SelectedIndex.ToString();

addcommand.Parameters.Add(new OracleParameter("@orgid",OracleType.NVarChar,5));
addcommand.Parameters["@orgid"].Value=organid_box.Text;
程序1可以向表插入数据,程序2怎么也不行,我看了一下监视窗口,Parameters的值是STRING的,比如"000000",可SQL语言里VARCHAR型的要'000000'才能执行,是不是这个原因导致表插入失败,急啊,想不明白
 
"insert into oper(USR_ID,USR_NAME,PASSWORD,OPER_FLAG,STATUS,ORG_ID) values(@usrid,@usrname,'888888','0',@status,@orgid)";
你把888888 与 0 都去掉 换成参数形式赋值试一试,
全部都用参数的形式
 
问题已解决,ORACLECOMMAND参数的写法和SQLCOMMAND有点不一样。呵呵
 
后退
顶部