各位兄弟姐妹,看看,说说带参数的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语句请楼下回答