我处于需要检查用户是否已成功授予访问权限的情况。但是ExecuteScalar总是向我返回null值。所以我不确定如何验证以下查询是否已成功执行?
string query= "grant connect,resource to user";
oleDbCommand cmd = new oleDbCommand(query,conn);
object grantStatus = cmd.ExecuteScalar();
if(grantStatus!=null)
{
response.write "Granted Access Successfully";
}
虽然它为用户成功授予了访问权限,但grantStatus对象始终具有空值。我该如何验证?
答案 0 :(得分:2)
由于授权不是查询,因此ExecuteScalar在授予的情况下没有要返回的行/列值。它是DDL(实际上是DCL)。
查看ExecuteNonQuery()以获取DDL类型命令。没有返回数据时。它实际上返回-1。
使用ExecuteScalar,您必须假设只要没有抛出异常,并且您的语句有效,就没有错误。
您的代码缺少的是try / catch以及using block
不要完全重复自己,请在此处查看我的答案:https://stackoverflow.com/a/26534021/257090