我正在使用以下SQL查询和ExecuteScalar()
方法从Oracle数据库获取数据:
sql = "select username from usermst where userid=2"
string getusername = command.ExecuteScalar();
我看到了这个错误信息:
System.NullReferenceException: 对象引用未设置为对象的实例。
当数据库表中没有userid=2
的行时,就会出现这个错误。
我应该如何处理这种情况呢?
OracleCommand
的ExecuteScalar
方法返回一个结果对象。由于SQL语句是任意的,所以它不是强类型的,因此在解析之前(由DB引擎而不是.NET运行时解析),类型是未知的。返回的对象可以为null
。您假设它是一个字符串,它可能是,很多类型都可以隐式转换为字符串,但这是一个非常危险的假设 - 该对象可以是任何类型。与您不明确信任的任何其他对象引用一样,首先应确保它不为null
。 - Ed B