使用SqlCommand.ExecuteNonQuery而不是...的好处

时间:2010-03-29 19:03:19

标签: asp.net sql ado.net

a)SqlCommand.ExecuteNonQuery用于更新,插入和删除操作。 除了使用ExecuteNonQuery代替ExecuteReader我们自动知道不会返回任何查询结果这一事实外,是否还有其他一些好处/原因应该使用ExecuteNonQuery

b)同样,如果我们希望数据库操作返回单个值,我们应该使用ExecuteScalar而不是ExecuteNonquery,后者的结果将通过SqlParameter返回。我们之所以选择ExecuteScalar而不是ExecuteNonQuery,是否有任何特殊原因?

感谢名单

2 个答案:

答案 0 :(得分:2)

第二点......

ExecuteScalar返回第1行的第1列:整个数据集将传回客户端。即使数据集恰好是一行而且恰好是一列,返回数据集的效率仍然低于使用输出/返回参数

同样适用于第一点:更有效地不处理记录集。

答案 1 :(得分:1)

第一点......

你说过:

we automatically know there won’t be any query results returned

实际上,ExecuteNonQuery返回受影响的行数,如果执行查询后的逻辑取决于数据库是否已更改,这非常重要。