我正在尝试将记录提取到listarray中,如下所示:
List<Car> lst = new List<Car>();
string str = "select * from Inventory";
using(SqlCommand cmd = new SqlCommand(str,this.sqlcon))
{
SqlDataReader rdr = cmd.ExecuteReader();
while (rdr.Read())
{
lst.Add(new Car
{
CarId = (int)rdr["CarId"],
Make = (string)(rdr["Make"] ?? ""),
Color= (string)(rdr["Color"] ?? ""),
PetName = (string)(rdr["PetName"] ?? "")
});
}
rdr.Close();
}
Run Code Online (Sandbox Code Playgroud)
Make,color和petname可能具有空值,因此我使用了??运算符.我收到以下错误
无法将system.dbnull类型的对象强制转换为'system.string'.
在这种情况下检查null的正确方法是什么?
DBNull是不一样的null,所以你不能使用??运算符.你必须单独处理这个案子.
更换:
Make = (string)(rdr["Make"] ?? ""),
Run Code Online (Sandbox Code Playgroud)
有:
Make = (rdr["Make"] == System.DBNull.Value ? "" : (string)rdr["Make"]),
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
273 次 |
| 最近记录: |