Convert.ToInt32(myCommand.ExecuteScalar()); // Returns 100, because myCommand is a SQL command that gets a non-null BigInt cell
myCommand.ExecuteScalar() as int? ?? 0; //Returns 0 even when myCommand is SQL command that gets a non-null BigInt cell
在这种情况下,我必须使用第二种方法,因为myCommand.ExecuteScalar()可能返回 DBNull 。但是为什么第二种方法返回的结果与
Convert.ToInt32 不同呢?
编辑:谢谢大家。将类型更改为Int64,现在它可以正常工作。