这是我的代码:
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 1234@1234.com 8015555555 NULL NULL NULL NULL NULL NULL NULL NULL Jane Doe 8015555555 1234@1234.com
答案 0 :(得分:1)
您的字段GoLiveDate包含空值,而null不是GetString返回的DBNull.Value,
你不能用??在这种情况下运算符。 (See this question here)
尝试使用此代码。
编辑:
DistInfo distInfo = new DistInfo() {AnticipatedLaunchDate = "Some default value instead of null"};
int colOrdinal = reader.GetOrdinal( "GoLiveDate" );
if(!reader.IsDBNull(colOrdinal ) )
{
distInfo.AnticipatedLaunchDate = reader.GetString(colOrdinal);
}
return distInfo;