update TB_USER_INFO set USER_ROLE=:P0 where USER_NAME=@P1 应该是:而不是@
update TB_USER_INFO set USER_ROLE=@P0 where USER_NAME=@P1 显然,这是带参数的语句. update TB_USER_INFO set USER_ROLE=@P0 where USER_NAME=@P1 ; ";"是用来结尾的. 跟SQL带参数的语句一样..... 你的cmd.Paramters.AddWithValue....
public void UpdateRole(string UserName,int roleId) { sql = "update TB_USER_INFO set USER_ROLE=:P0 where USER_NAME=@P1"; object[] argVal ={ roleId, UserName }; DataOperater.dbo.ExecuteSql(sql, argVal); }还是报 非法的变量名/编号?请指教啊
你后面的那个@也修改一下,oracle的参数用的是:而不是SqlServer的@
update TB_USER_INFO set USER_ROLE=:P0 where USER_NAME=:P1
这个是对的: oracle 的参数 使用的是 "?" 和 ":" ..........
public void UpdateRole(string UserName,int roleId) { sql = "update TB_USER_INFO set USER_ROLE=:P0 where USER_NAME= :P1"; object[] argVal ={ roleId, UserName }; DataOperater.dbo.ExecuteSql(sql, argVal); } 不对啊,还是非法的变量名/编号
public void ExecuteSql(string argSqlString, object[] argVal) { OracleCommand sqlExecuteCommand = new OracleCommand(argSqlString, dbConnection); if (dbTrans != null) sqlExecuteCommand.Transaction = dbTrans; sqlExecuteCommand.Prepare(); for (int i = 0; i < argVal.Length; i++) { sqlExecuteCommand.Parameters.AddWithValue("@P" + i.ToString(), argVal[i]); } sqlExecuteCommand.ExecuteNonQuery(); }
update TB_USER_INFO set USER_ROLE=:P0 where USER_NAME=:P1 改成冒号就好了!
update TB_USER_INFO set USER_ROLE=:P0 where USER_NAME=:P1当然,如果用IBatisNet,可以在SQLServer和Oraolce直接互相转化update TB_USER_INFO set USER_ROLE=#P0# where USER_NAME=#P1#自动转化为@P0或者:P0可以参考FortuneBase中IBatisNet用法,参考地址 www.cnblogs.com/mail-ricklee
update TB_USER_INFO set USER_ROLE=:P0 where USER_NAME=@P1 应该是:而不是@
update TB_USER_INFO set USER_ROLE=@P0 where USER_NAME=@P1 ;
";"是用来结尾的.
跟SQL带参数的语句一样.....
你的cmd.Paramters.AddWithValue....
{
sql = "update TB_USER_INFO set USER_ROLE=:P0 where USER_NAME=@P1";
object[] argVal ={ roleId, UserName };
DataOperater.dbo.ExecuteSql(sql, argVal);
}还是报 非法的变量名/编号?请指教啊
oracle 的参数 使用的是 "?" 和 ":" ..........
public void UpdateRole(string UserName,int roleId)
{
sql = "update TB_USER_INFO set USER_ROLE=:P0 where USER_NAME= :P1";
object[] argVal ={ roleId, UserName };
DataOperater.dbo.ExecuteSql(sql, argVal);
}
不对啊,还是非法的变量名/编号
{
OracleCommand sqlExecuteCommand = new OracleCommand(argSqlString, dbConnection);
if (dbTrans != null)
sqlExecuteCommand.Transaction = dbTrans;
sqlExecuteCommand.Prepare();
for (int i = 0; i < argVal.Length; i++)
{
sqlExecuteCommand.Parameters.AddWithValue("@P" + i.ToString(), argVal[i]);
}
sqlExecuteCommand.ExecuteNonQuery();
}
改成冒号就好了!
www.cnblogs.com/mail-ricklee