我正在从数据库中检索数据。因此我使用以下代码:
compname.Text = mRS.Fields["CompName"].Value == DBNull.Value
? ""
: mRS.Fields["CompName"].Value.ToString();
在运行时,我收到以下错误:
运算符'=='不能应用于'string'和'System.DBNull'类型的操作数
导致错误的原因是什么?
答案 0 :(得分:2)
因为mRS.Fields["CompName"].Value
是该字段的值并且是字符串类型而DBNull.Value
的类型是DBNull。
您应该将DBNull.Value
与字段本身(而不是其值)进行比较,如下所示:
compname.Text = DBNull.Value.Equals(mRS.Fields["CompName"]) ? "" : mRS.Fields["CompName"].Value;
答案 1 :(得分:0)
更改
compname.Text = mRS.Fields["CompName"].Value == DBNull.Value ? "" : mRS.Fields["CompName"].Value.ToString();
到
compname.Text = mRS.Fields["CompName"] == DBNull.Value ? "" : mRS.Fields["CompName"].Value;