2024年3月9日发(作者:)

MSDN的解释是

ExecuteNonQuery和ExecuteScalar的区别

ExecuteNonQuery

针对 Connection 执行 SQL 语句并返回受影响的行数。

返回值

受影响的行数。

备注

您可以使用 ExecuteNonQuery 来执行目录操作(例如查询数据库的结构或创建诸如

表等的数据库对象),或通过执行 UPDATE、INSERT 或 DELETE 语句,在不使

用 DataSet 的情况下更改数据库中的数据。

虽然 ExecuteNonQuery 不返回任何行,但映射到参数的任何输出参数或返回值都会

用数据进行填充。

对于 UPDATE、INSERT 和 DELETE 语句,返回值为该命令所影响的行数。对于所有

其他类型的语句,返回值为 -1。如果发生回滚,返回值也为 -1。

示例

以下示例创建一个 OleDbCommand,然后使用 ExecuteNonQuery 来执行它。向该

示例传递两个字符串:一个是 SQL 语句(如 UPDATE、INSERT 或 DELETE),另一个是用

于连接到数据源的字符串。

[C#]

public void CreateMyOleDbCommand(string myExecuteQuery, string myCon

nectionString)

{

OleDbConnection myConnection = new OleDbConnection(myConnectionStri

ng);

OleDbCommand myCommand = new OleDbCommand(myExecuteQuery, my

Connection);

();

eNonQuery();

();

}

ExecuteScalar