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,它现在可以工作了。