问题描述
oracle存储过程:createorreplaceprocedureP_USERLOGIN(sysuseridinvarchar2,sysuserpwdinvarchar2)asicountnumber;--定义查询到符合记录的条数beginselectcount(*)intoicountfromT_SYS_USERINFOwhereUSERID=sysuseridandUSERPWD=sysuserpwd;ificount>1thenicount:=1;elseicount:=0;endif;endP_USERLOGIN;C#调用P_USERLOGIN过程代码:publicintGetUserIcount(stringUserID,stringUserPWD){stringconstring="DataSource=orcl;PersistSecurityInfo=True;UserID=zkwz;Password=zkwz;Unicode=True";OracleConnectioncon=newOracleConnection(constring);OracleCommandcmd=newOracleCommand();cmd.Connection=con;con.Open();cmd.CommandText="P_USERLOGIN";cmd.CommandType=CommandType.StoredProcedure;OracleParameterpid=newOracleParameter("@sysuserid",OracleType.VarChar);OracleParameterppwd=newOracleParameter("@sysuserpwd",OracleType.VarChar);pid.Value=UserID;ppwd.Value=UserPWD;cmd.Parameters.Add(pid);cmd.Parameters.Add(ppwd);//cmd.Parameters["@sysuserid"].Value=UserID;//cmd.Parameters["@sysuserpwd"].Value=UserPWD;inticount=Convert.ToInt32(cmd.ExecuteScalar());con.Close();returnicount;}为什么总是出错????????????
解决方案
解决方案二:
总是提示:"ORA-01036:非法的变量名/编号"为什么?哪里错了??????
解决方案三:
怎么没人来啊,急用啊!!!哦,错了,是急学习........
解决方案四:
?????????
解决方案五:
???????/
解决方案六:
OracleParameterpid=newOracleParameter("@sysuserid",OracleType.VarChar);把@去掉,OracleParameterpid=newOracleParameter("sysuserid",OracleType.VarChar);
解决方案七:
OracleParameterpid=newOracleParameter("@sysuserid",OracleType.VarChar);OracleParameterppwd=newOracleParameter("@sysuserpwd",OracleType.VarChar);------------OracleParameterppwd=newOracleParameter("sysuserpwd",OracleType.VarChar);OracleParameterppwd=newOracleParameter("sysuserpwd",OracleType.VarChar);
正解