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 1234@1234.com   8015555555                                          NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    Jane    Doe 8015555555  1234@1234.com
4

1 回答 1

1

您的字段 GoLiveDate 包含空值且 null 不是 GetString 返回的 DBNull.Value,
您不能使用 ?? 在这种情况下操作员。(在此处查看此问题) 尝试使用此代码。

编辑:

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; 
于 2012-04-20T22:18:35.723 回答