a)SqlCommand.ExecuteNonQuery
用于更新,插入和删除操作。
除了使用ExecuteNonQuery
代替ExecuteReader
我们自动知道不会返回任何查询结果这一事实外,是否还有其他一些好处/原因应该使用ExecuteNonQuery
?
b)同样,如果我们希望数据库操作返回单个值,我们应该使用ExecuteScalar
而不是ExecuteNonquery
,后者的结果将通过SqlParameter
返回。我们之所以选择ExecuteScalar
而不是ExecuteNonQuery
,是否有任何特殊原因?
感谢名单
答案 0 :(得分:2)
第二点......
ExecuteScalar返回第1行的第1列:整个数据集将传回客户端。即使数据集恰好是一行而且恰好是一列,返回数据集的效率仍然低于使用输出/返回参数
同样适用于第一点:更有效地不处理记录集。
答案 1 :(得分:1)
第一点......
你说过:
we automatically know there won’t be any query results returned
实际上,ExecuteNonQuery返回受影响的行数,如果执行查询后的逻辑取决于数据库是否已更改,这非常重要。