string strConn = "Data Source=ZStone;Initial Catalog=Test;Persist Security Info=True;User ID=sa;Password=amazing";
        SqlConnection conn = new SqlConnection(strConn);
        string SQL = "SELECT Count(*) FROM Guest";
        SqlCommand Comm = new SqlCommand(SQL, conn);
        conn.Open();
        Label1.Text = Comm.ExecuteNonQuery().ToString();为什么是-1呢?

解决方案 »

  1.   

    ExecuteNonQuery对影响的行数如 删除行数,修改的,添加的. ... 对Select 返回的一定是-1
      

  2.   

    你可以使用  Comm.ExecuteReader()[0].ToString();
      

  3.   

    ExecuteNonQuery()方法主要用户更新数据,通常它使用Update,Insert,Delete语句来操作数据库,其方法返回值意义:对于 Update,Insert,Delete  语句 执行成功是返回值为该命令所影响的行数,如果影响的行数为0时返回的值为0,如果数据操作回滚得话返回值为-1
      

  4.   

    虽然 ExecuteNonQuery 不返回任何行,但映射到参数的任何输出参数或返回值都会用数据进行填充。对于 UPDATE、INSERT 和 DELETE 语句,返回值为该命令所影响的行数。对于所有其他类型的语句,返回值为 -1。如果发生回滚,返回值也为 -1
      

  5.   

    改成ExecuteScalar
    Label1.Text = Comm.ExecuteScalar().ToString();