0
这里是我的代码:在当前上下文中不存在类属性分配?
DistInfo distInfo = new DistInfo
{
if (reader.GetString(reader.GetOrdinal("GoLiveDate")) == null) {
AnticipatedLaunchDate = "";
}
else
{
AnticipatedLaunchDate = reader.GetString(reader.GetOrdinal("GoLiveDate"));
}
};
这里是我的类:
public class DistInfo
{
public string AnticipatedLaunchDate { get; set; }
}
跟它AnticipatedLaunchDate不会在当前的背景下存在。如果空字符串为空,是否有其他方法可以分配它?
我建立并运行代码,并将其上线254这是此行出错了:
DistInfo distInfo = new DistInfo
{
AnticipatedLaunchDate = reader.GetString(reader.GetOrdinal("GoLiveDate")) ?? ""
};
,出现以下错误:
无效尝试时不存在数据读取。
这里是SQL查询返回的数据:
DistID password GoLiveDate FirstBonusRun TechFName TechLName TechEmail TechPhone WebISPFName WebISPLName WebISPEmail WebISPPhone FullFillFName FullFillLName FullFillEmail FullFillPhone FName LName HomePhone Email
113 !12341 NULL NULL John Doe [email protected] 8015555555 NULL NULL NULL NULL NULL NULL NULL NULL Jane Doe 8015555555 [email protected]
我看到您已将记录的内容。如上述GoLiveDate为空,并且GetString()返回的DBNull.Value不为null。 – Steve 2012-04-20 22:25:38
即使这不起作用。虽然我能够走得更远。在逐步完成时,会将其传递给!reader.IsDBNull行,但会完全跳过该块。他们原来的人将这个专栏设置为VarChar(50),不确定这是否有所作为。它似乎不想将NULL识别为DbNULL。 – 2012-04-20 22:33:58
没错。如果数据库中的字段包含NULL,那么IsDBNull返回true,并且不应该在使用GetString的块中输入。你不能使用GetString()。您应该为您的AnticipatedLaunchDate设置默认值。我会尝试更新我的答案 – Steve 2012-04-20 22:36:51