为了账号安全,请及时绑定邮箱和手机立即绑定

数据库查询错误

数据库查询错误

翻翻过去那场雪 2018-12-06 21:33:01
谁帮我看看啊,这个老是返回值为-1,一调试,就叫我重启vs什么问题啊,急求帮助!!   public int ValidateAdmin(string sql, string adminID,string adminPwd)        {            int i;            try            {                this.openCon();                this.cmd = new SqlCommand(sql, this.con);                this.cmd.CommandType = CommandType.StoredProcedure;                SqlParameter[] pars = new SqlParameter[] {                     new SqlParameter("@AdminID", SqlDbType.VarChar,50),                     new SqlParameter("@AdminPwd", SqlDbType.VarChar,50)                };                pars[0].Value = adminID;                pars[1].Value = adminPwd;                foreach (SqlParameter parameter in pars)                {                    this.cmd.Parameters.Add(parameter);                }                i = (int)this.cmd.ExecuteScalar();            }            catch            {                i = -1;            }            finally            {                this.closeCon();            }            return i;        }           public void openCon()        {            if (this.con == null)            {                this.con = new SqlConnection(this.strCon);            }            if (this.con.State.Equals(ConnectionState.Closed))            {                this.con.Open();            }        }
查看完整描述

9 回答

?
尚方宝剑之说

TA贡献1788条经验 获得超4个赞

判断一下   this.cmd.ExecuteScalar(); 是否为NULL,再做 i = (int)this.cmd.ExecuteScalar();转换。

查看完整回答
反对 回复 2019-01-07
?
千万里不及你

TA贡献1784条经验 获得超9个赞

数据库查询出错了,跳入catch代码块了

查看完整回答
反对 回复 2019-01-07
?
慕姐8265434

TA贡献1813条经验 获得超2个赞

@小柑: this.cmd = new SqlCommand(sql, this.con);  这个sql语句有没有错

查看完整回答
反对 回复 2019-01-07
?
莫回无

TA贡献1865条经验 获得超7个赞

@┢┦偉: 没有错  我突然发现  this.cmd.ExecuteScalar()不为空   改成下面  能获得i=1

  if (this.cmd.ExecuteScalar() != null)
                {
                    i = 1;//原来是i = (int)this.cmd.ExecuteScalar();                 }

查看完整回答
反对 回复 2019-01-07
?
跃然一笑

TA贡献1826条经验 获得超6个赞

@小柑: 谢谢了  总算解决这个问题了

查看完整回答
反对 回复 2019-01-07
?
陪伴而非守候

TA贡献1757条经验 获得超8个赞

@小柑: 不会有负值,0或>0

查看完整回答
反对 回复 2019-01-07
?
繁花如伊

TA贡献2012条经验 获得超12个赞

如果返回不为空给返回值赋值,不是把this.cmd.ExecuteScalar()的值直接返回去,因为不知道会返回什么值

查看完整回答
反对 回复 2019-01-07
  • 9 回答
  • 0 关注
  • 714 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信