首页 > 代码库 > c# update Oracle带参数 写法

c# update Oracle带参数 写法

刚刚从MySql/MSSQL数据库转到Oracle,用C#调用时一直更新不成功 ,后来发现是传参数格式不正确的问题。

Oracle里的command 要在参数名前用冒号:标注。SqlServer和MySQL都是用@。见http://www.codeproject.com/Questions/618582/ORA-00936-missing-expression
public static bool UpdateNew(Entity.PW_User NewUser)        {            try            {                Entity.PW_User tt = NewUser;                              StringBuilder sb = new StringBuilder();                sb.Append(" update pw_User set ");                sb.Append(" UserName=:UserName, ");                sb.Append(" Password=:Password, ");                sb.Append(" UserGroupCode=:UserGroupCode, ");                sb.Append(" CreateTime=:CreateTime, ");                sb.Append(" LastLoginTime=:LastLoginTime  ");                sb.Append(" where UserID=:UserID ");                //Oracle里的command 要在参数名前用冒号:标注。SqlServer和MySQL都是用@。                //见-----http://www.codeproject.com/Questions/618582/ORA-00936-missing-expression                OracleCommand cmd = new OracleCommand();                cmd.CommandText = sb.ToString();                cmd.CommandType = CommandType.Text;                //下面添加参数的顺序一定要跟上面的语句里各参数出现的顺序一致。否则更新不成功。                //如下面的UserID参数不能先于前面5个参数的任何一个出现。                cmd.Parameters.Add(new OracleParameter("UserName", OracleDbType.NVarchar2, 45) { Value =http://www.mamicode.com/ tt.UserName });                cmd.Parameters.Add(new OracleParameter("Password", OracleDbType.Varchar2, 45) { Value =http://www.mamicode.com/ tt.Password });                cmd.Parameters.Add(new OracleParameter("UserGroupCode", OracleDbType.Varchar2, 45) { Value =http://www.mamicode.com/ tt.UserGroupCode });                cmd.Parameters.Add(new OracleParameter("CreateTime", OracleDbType.Varchar2, 45) { Value =http://www.mamicode.com/ tt.CreateTime });                cmd.Parameters.Add(new OracleParameter("LastLoginTime", OracleDbType.Varchar2, 45) { Value =http://www.mamicode.com/ tt.LastLoginTime });                cmd.Parameters.Add(new OracleParameter("UserID", OracleDbType.Varchar2, 50) { Value =http://www.mamicode.com/ tt.UserID });                int val = DBHelper_Oracle. ExecuteNonQuery(cmd);                if (val > 0)                {                    return true;                }                else                {                    return false;                }            }            catch            {                return false;            }        }

希望对大家有用 。

c# update Oracle带参数 写法