2016-08-30 12 views
0

は、私が変換したりnull日付時刻をスキップすることができますどのように、私の日時は、データベース から私が使用するコードであったnull日付時間を変換またはスキップするには?

private void gridView1_CustomRowCellEdit(object sender, CustomRowCellEditEventArgs e) 
{ 
     GridView view = sender as GridView; 
     for (int i = 0; i < gridView1.RowCount; i++) 
     { 

      if (gridView1.GetDataRow(i) == null) 
      { 
       break; 
      } 
      DateTime sg = Convert.ToDateTime(gridView1.GetDataRow(i)["date"]); 
      if (!repositoryItemComboBox1.Items.Contains(sg)) 
       { 
        repositoryItemComboBox1.Items.Add(sg); 
       } 
     } 
} 

私はプログラムを実行しようと日付のデータベースがnullのタイプを持っているために、それは与えます私のエラー:

オブジェクトはDBNULLから他のタイプにキャストできません。 DBNull.Valueを使用して system.dbnull.system.iconvertible.toDatetime(するIFormatProviderプロバイダー)

答えて

0

で:;

DateTime? sg = null; 
if(gridView1.GetDataRow(i)["date"] != DBNull.Value) 
    sg = Convert.ToDateTime(gridView1.GetDataRow(i)["date"]); 

if (sg != null && !repositoryItemComboBox1.Items.Contains(sg)) 
{ 
    repositoryItemComboBox1.Items.Add(sg); 
} 
+0

はあなたがもう一度コードを参照してください気にしますか?、私は編集をチェック@DavidChopperField –

+0

場合は、別の内部でSGの変数を入れて傾けます。 – user3185569

+0

あなたのコードは動作しますが、NULL値をnullに変換する方法はありますか?null値を呼び出そうとすると、エラーが発生します。 –

0

あなたのgridView1.GetDataRow(i)["date"]はそのような前DBNullかではありません確認することができます

DateTime sg; 
if(!(gridView1.GetDataRow(i)["date"] is DBNull)) 
{ 
    sg = Convert.ToDateTime(gridView1.GetDataRow(i)["date"]); 
} 
+0

うまくいけば、リポジトリ項目の場合は' sg'を使います。コードの一部がiamによって編集されました –

+0

@DavidChopperField次に、ブロック。私の答えを更新しました。 –

+0

あなたのコードが動作します! 他の質問がありますか? あなたが私に与えたコードは、日付のヌル値をスキップしていました。どのようにしてヌルデートを呼び出したり保存したりできますか? (日付null値をnullに変換)私はスタック上の任意の答えを見つけることができません。 –

関連する問題