I am using the following SQL query and the ExecuteScalar() method to fetch data from an Oracle database:
sql = \"select username from usermst wh
According to MSDN documentation for DbCommand.ExecuteScalar:
If the first column of the first row in the result set is not found, a null reference (Nothing in Visual Basic) is returned. If the value in the database is null, the query returns DBNull.Value.
Consider the following snippet:
using (var conn = new OracleConnection(...)) {
conn.Open();
var command = conn.CreateCommand();
command.CommandText = "select username from usermst where userid=2";
string getusername = (string)command.ExecuteScalar();
}
At run-time (tested under ODP.NET but should be the same under any ADO.NET provider), it behaves like this:
command.ExecuteScalar() is null, which is then casted to a null string and assigned to getusername.command.ExecuteScalar() is DBNull.Value, resulting in an InvalidCastException.In any case, the NullReferenceException should not be possible, so your problem probably lies elsewhere.