日期:2014-05-18  浏览次数:20448 次

一段简单的代码!!!求助!!!
protected void ImgBtnLogin_Click(object sender, ImageClickEventArgs e)
  {
  string sqlconn = "server=localhost;uid=sa;pwd=;database=message";
  string sqlsel = "select username from userinform where username='"+this.TxtName.Text+"'";
  SqlConnection conn = new SqlConnection(sqlconn);
  conn.Open();
  SqlCommand sqlcmd = new SqlCommand(sqlsel,conn);
  int state = sqlcmd.ExecuteNonQuery() ;
  if (state > 0)
  {
  Label1.Text="ERROR";
  }
  else
  {
  Label1.Text = "OK";
  }
  conn.Close();
  }



ExecuteNonQuery() 不是返回的是受影响的行数吗? 那 int state = sqlcmd.ExecuteNonQuery() ; 这句话里的state的值应该就是>0的值 为什么我调试的时候 发现state 值为-1啊 太奇怪了 那位大哥解释下啊 !!!!!!

小弟感激涕零!!!!!!!!!!!!

------解决方案--------------------
对于insert,delete,update(不包括select,因为select是选择列,并没有改变数据库里的数据),sqlcmd.executenonquery()返回的是受影响的行数!!!!

------解决方案--------------------
executenonquery方法返回的是受影响的行数,所遇对于insert,delete,update才有用,查询的话就用SqlDataAdapter类,然后保存到DataSet中,再判断dataset是否为null