ExecuteNonQuery与ExecuteScalar的区别

    技术2022-05-20  33

    ExecuteNonQuery与ExecuteScalar的区别

      public int GetRsCount(string table_name)   {    string strSql;    int intCount;    Open();    strSql="select count(*) from "+table_name;    SqlCommand cmd=new SqlCommand(strSql,cn);  语句1)  intCount=(int)cmd.ExecuteScalar();//断点 语句2)//   intCount=(int)cmd.ExecuteNonQuery();//断点    cn.Close();    return intCount;   } 今天测试了一下ExecuteNonQuery与ExecuteScalar的区别: 在以上语句中分别执行了语句1和语句2,因为是查询语句,所以可以查询到数据库中的所有数据, 本身数据库中有7条数据,当我用ExecuteScalar语句时,在该句设了个断点,检测到 intCount为7, 同样,当我使用语句2是,检测到 intCount为0,现在才知道为什么ExecuteScalar主要用于查询语句, 而ExecuteNonQuery用于更新和删除语句, 但是有一点不懂的就是,ExecuteScalar语句返回的是影响数目,但是帮助中确是说“ExecuteScalar:执行查询,并返回查询所返回的结果集中第一行的第一列。忽略额外的列或行。 ” ExecuteNonQuery主要是在执行更新和删除时才返回影响的数目,而在执行查询时则是返回一个0。

    最新回复(0)