【发布时间】:2019-10-05 03:44:05
【问题描述】:
我在我的数据库中获得了最小数量。但是当我的数据库中没有数据时,我会收到此错误。
System.InvalidCastException: '无法从 DBNull 将对象分配给其他类型。'
代码:
SqlCommand cmd = new SqlCommand("SELECT MAX(GidenEvrakSira) FROM GidenEvrak", con);
SqlCommand smd = new SqlCommand("Select Min(GidenEvrakSira) FROM GidenEvrak Where UserID is null", con);
con.Open();
maxnum = Convert.ToInt32(cmd.ExecuteScalar());
minum = Convert.ToInt32(smd.ExecuteScalar());
con.Close();
【问题讨论】:
-
对不起。您收到的错误信息是什么?请编辑您的问题并添加错误消息的确切文本。
-
如果没有数据,
Min(...)和Max(...)返回值DBNull。在将结果交给Convert.ToInt32之前,您必须检查此类 NULL 值 -
将 DBNull 转换为 null。所以尝试这样的事情: var results = (cmd.ExecuteScalar == DBNull.Value) ? null : cmd.ExecuteScalar
-
是的,它有效。谢谢@jdweng var results = (cmd.ExecuteScalar() == DBNull.Value) ? null : cmd.ExecuteScalar();
标签: c# sql-server asp.net-mvc dbnull executescalar