日期:2014-05-17  浏览次数:20536 次

return (int)cmd.Parameters[RETURNVALUE].Value;网上的SQLHelper返回什么什么值啊?
各位兄弟姐妹,看看,说说带参数的SQL语句,怎么在DAL调用SQLHelper。

return (int)cmd.Parameters[RETURNVALUE].Value;返回什么啊?怎么数据库里面已经插入了数据,count却不是大于0的数
SQLHelper里面的代码:
C# code

 public int RunSQL(string cmdText, SqlParameter[] prams)
        {
            SqlCommand cmd = CreateSQLCommand(cmdText, prams);
            try
            {
                cmd.ExecuteNonQuery();
                //return (int)cmd.ExecuteNonQuery(); 这句我写的,觉得还好写啊
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            finally
            {
                Close();
            }
            return (int)cmd.Parameters[RETURNVALUE].Value; //我上面的语句可以完全替换吗?有什么区别啊?
            
        }


数据处理层DAL调用sqlhelper
C# code

public bool Add_User(User user)
        {
            SqlParameter[] paramList ={
                 sqlHelper.CreateInParam("@uid",SqlDbType.VarChar,50,user.uid),
                 sqlHelper.CreateInParam("@pwd",SqlDbType.VarChar,50,user.pwd),
                 sqlHelper.CreateInParam("@name",SqlDbType.VarChar,50,user.name),
                
            };
            string sql = "insert into tt_User (uid,pwd,name) values (@uid,@pwd,@name)";
            int count = sqlHelper.RunSQL(sql, paramList);//不知道参数都是这么设置的吗?也添加了记录,就是返回的值不对,判断不对
            if (count > 0)
            {
                return true;
            }
            else
            {
                return false;
            }
 
        }


------解决方案--------------------
insert into tt_User (uid,pwd,name) values (@uid,@pwd,@name)
这个SQL return 了个什么值
------解决方案--------------------
可以替换
------解决方案--------------------
return (int)cmd.ExecuteNonQuery(); 这个才是返回受影响的行数

return (int)cmd.Parameters[RETURNVALUE].Value;//这个是返回返回参数,一般用在存储过程中

一般是存储过程中用return 返回的参数,如:

...
...
..
--过程体

return 0
------解决方案--------------------
一般是调用存储过程,如何调用sql语句请楼下回答