我有一个sql命令在我的数据库中拾取一行,但有时其中一个日期时间值可能为空。
示例:
var reader = command.ExecuteReader();
if (reader.HasRows)
{
List<AdmissionsVm> appDetailsOut = new List<AdmissionsVm>();
while (reader.Read())
{
appListOut.Add(new AdmissionsVm
{
Parish = Convert.ToString(reader.GetValue(40)),
CofE = Convert.ToBoolean(reader.GetValue(41)),
OtherFaith = Convert.ToString(reader.GetValue(42)),
PrefSiblingName1 = Convert.ToString(reader.GetValue(43)),
if (!reader.GetValue(44).IsDbNull){SiblingDateOfBirth = Convert.ToDateTime(reader.GetValue(44))}
SiblingGender = Convert.ToString(reader.GetValue(45))
});
}
}
我实际上带回了很多细节但是当siblingdateofbirth为null时,我似乎无法检查它,因为我之后添加的字段出现错误
任何帮助将不胜感激
答案 0 :(得分:0)
通常最好指定列名而不是列位置,因为如果查询由于某种原因更改了其返回列的顺序,则可能需要更改所有GetValue调用的参数。
要检查null尝试类似这样的事情
if (!reader.IsDBNull(reader.GetOrdinal("YourColumnNameForPosition44")))
{SiblingDateOfBirth = Convert.ToDateTime(reader.GetString(reader.GetOrdinal("YourColumnAgain"))}