如何设置char的DBnull值
本文关键字:char DBnull 设置 何设置 | 更新日期: 2023-09-27 18:12:58
我正在处理从数据库中获取记录的应用程序。但当获取值的char数据类型为null时,它会显示错误。这是我的代码:
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
lstServiceCall_Activity.Add(new OpportunityActivity()
{
Recontact = Convert.IsDBNull(reader["Recontact"]) ? (DateTime?)null : Convert.ToDateTime(reader["Recontact"]),
endDate = Convert.IsDBNull(reader["endDate"]) ? (DateTime?)null : Convert.ToDateTime(reader["endDate"]),
Details = (reader["Details"]) == DBNull.Value ? null : Convert.ToString(reader["Details"]),
Location = (reader["Location"]) == DBNull.Value ? 0 : Convert.ToInt32(reader["Location"]),
CardCode = (reader["CardCode"]) == DBNull.Value ? null : Convert.ToString(reader["CardCode"]),
Action = Convert.ToChar(reader["Action"]),
Priority = Convert.ToChar(reader["Priority"]),
CntctType = Convert.ToChar(reader["CntctType"]),
assignedTo = Convert.ToString(reader["AttendUser"])
}
);
}
对于char如何设置dbnull值。请提出一些建议。
不能将char
设置为null
,因此必须通过在char
之后添加?
使其可以为null,或者使用null终止符作为"空"字符的标识符:
char? canBeNull = null;
char nullTerminated = ''0';
你选择哪个选项取决于你,但我会选择选项1,因为这清楚地表明了你对这个变量的意图。
所以最终的结果是这样的:
char? Priority = reader["Priority"] != DBNull.Value
? Convert.ToChar(reader["Priority"])
: (char?)null;
Action = (reader["Action"]) == DBNull.Value ?''0' : Convert.ToChar(reader["Action"]),
像这样使用。