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 が現在のコンテキストに存在しないと言っています。nullの場合、空の文字列を割り当てる別の方法はありますか?

コードをビルドして実行したところ、次の行である 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 値が含まれており、null は DBNull ではありません。GetString によって返される値
。?? は使用できません。この場合の演算子。(こちらの質問を参照してください) このコードを試してください。

編集:

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 に答える