ExecuteNonQuery与ExecuteScalar的区别

来源:互联网 发布:文明 太空 mac 中文 编辑:程序博客网 时间:2024/04/30 11:06

//返回满足条件的行数

 public static int Sqlcom_num(string sql)
        {
            using (SqlConnection sqlcon = new SqlConnection(connectionString))
            {
                sqlcon.Open();
                SqlCommand sqlcom = new SqlCommand(sql, sqlcon);//sql为count(*)语句才能返回满足条件的行数
                int i = (int)sqlcom.ExecuteScalar();
                sqlcon.Close();
                return i;
            }
        }


今天测试了一下ExecuteNonQuery与ExecuteScalar的区别:

select * 语句:

ExecuteNonQuery() 总是返回 -1;

ExecuteScalar()       只能返回x(x为查询结果的第一行第一列的值)或者0(无满足条件的结果时);

select count(*) 语句:

ExecuteNonQuery() 总是返回 -1;

ExecuteScalar()       只能返回n(n为满足条件的行数,实质上也是查询结果的第一行第一列的值,因为此时执行的是select count(*)语句,只在第一行第一处有数据,该数据就是 满足条件的行数n)或者0(无满足条件的结果时);


总结:

  
ExecuteNonQuery 主要用在插入,更新,删除 一般情况用在查询的时候返回的是-1 
ExecuteScalar返回的是 查询结果的一个第一行第一列的值 

0 0
原创粉丝点击