.net OleDbCommand.ExecuteNonQuery的返回值问题

来源:百度知道 编辑:UC知道 时间:2024/05/13 06:15:14
using (OleDbConnection connection = new OleDbConnection(connectionString))
{
using (OleDbCommand cmd = new OleDbCommand(SQLString, connection))
{
connection.Open();
int rows = cmd.ExecuteNonQuery();
return rows;
}
}

对aceess数据库进行查询,怎么不管查询结果是否为空,ExecuteNonQuery()总返回0啊?

ExecuteNonQuery方法是执行增、删、改操作时调用的,他返回的是相应的修改行数,OleDbCommand的ExecuteScalar方法和OleDbDataAdapter的Fill方法是用来查询的

下面是MSDN上的解释
您可以使用 ExecuteNonQuery 来执行目录操作(例如查询数据库的结构或创建表等数据库对象),或通过执行 UPDATE、INSERT 或 DELETE 语句,在不使用 DataSet 的情况下更改数据库中的数据。

虽然 ExecuteNonQuery 不返回任何行,但映射到参数的任何输出参数或返回值都会用数据进行填充。

对于 UPDATE、INSERT 和 DELETE 语句,返回值为该命令所影响的行数。对于所有其他类型的语句,返回值为 -1。如果发生回滚,返回值也为 -1