Oracle参数化SQL话语,无法给SQL中的变量赋值

Oracle参数化SQL语句,无法给SQL中的变量赋值
本帖最后由 gjw727885993 于 2012-11-28 10:20:19 编辑 先把有问题的代码上上来,问题就出现在cmd.Parameters.Add的时候,失败了,没有把SQL中的变量替换掉


        public bool CheckUser(string username)
        
        {
            DataSet ds = new DataSet();
            string sql = "select * from mes_user where username=:user";
            conn.Open();
            OracleCommand cmd = new OracleCommand(sql,conn);
            cmd.Parameters.Add(new OracleParameter("user",username));  //问题在这里
            OracleDataAdapter da = new OracleDataAdapter(cmd);
            da.Fill(ds);
            if (ds.Tables[0].Rows.Count>0)
            {
                return true;
            }
            else
            {
                return false;
            }
        }


下图是错误信息


用下面这种类似写法,问题依旧

     OracleCommand cmd = new OracleCommand(sql, conn);
     cmd.Parameters.Add("user", OracleType.VarChar).Value = username;


有没有大师可以帮我解决一下
------最佳解决方案--------------------
什么意思,你那不是已经加进去了么,count=1
------其他解决方案--------------------
引用:
什么意思,你那不是已经加进去了么,count=1


可是实际上,我那个 select * form mes_user where username=:user

这个:user并没有被我ADD进去的值替换掉,返回的结果集是空的
------其他解决方案--------------------
自己搞定了,好几种写法都是对的,但是2天一直编译出错,今天中午突然又全部正常了,见鬼!谢谢热心的版主