2012-03-05 11 views
0

C#のDataGridViewでnullセルの値を確認するにはどうすればよいですか?私はチェックのためにDBNullを使用しましたが、動作していないし、 "オブジェクト参照がオブジェクトのインスタンスに設定されていません"というエラーが発生しています。 私はVS2010を使用しています。DataGridViewのNull値

誰も私を助けることができますか?

DateGridViewは、次のプロパティがあります。 名前:dgTelFax AllowUserToAddRows:真 AllowUserToDeleteRows:真

を私が現在持っているコードは次のとおりです。事前に

  DataSet objDSTelephone = new DataSet(); 
      DataTable objDTTelephone = objDSTelephone.Tables.Add(); 

      string strTelephoneID = ""; 
      string strTelephone = ""; 

      int intRecTel = dgTelFax.Rows.Count; 
      if (intRecTel > 0) 
      { 
       //-- Add columns to the data table 
       objDTTelephone.Columns.Add("id", typeof(string)); 
       objDTTelephone.Columns.Add("telephone", typeof(string)); 

       for (int i2 = 0; i2 <= intRecTel - 1; i2++) 
       { 
        strTelephoneID = (!DBNull.Value.Equals(dgTelFax.Rows[i2].Cells[0].Value)) ? dgTelFax.Rows[i2].Cells[0].Value.ToString() : ""; 
        strTelephone = (!DBNull.Value.Equals(dgTelFax.Rows[i2].Cells[2].Value)) ? dgTelFax.Rows[i2].Cells[2].Value.ToString() : ""; 
        objDTTelephone.Rows.Add(strTelephoneID, strTelephone); 
       } 
      } 

感謝!!

+0

これをチェックhttp://stackoverflow.com/questions/3155684/handle-empty-cells-in-datagridviewを – Raymund

答えて

1

この場合、dgTelFaxにはDBNull.Valueが含まれず、単純なnullが含まれます。データソース内の列の型が文字列の場合

strTelephoneID = (dgTelFax.Rows[i2].Cells[0].Value ?? string.Empty).ToString(); 
strTelephone = (dgTelFax.Rows[i2].Cells[2].Value ?? string.Empty).ToString(); 

は、言うのに十分であろう:これをテストするには次のように記述し

strTelephoneID = (string)dgTelFax.Rows[i2].Cells[0].Value; 
strTelephone = (string)dgTelFax.Rows[i2].Cells[2].Value; 

をしかし、問題がある - なぜあなたはにデータグリッドを結合しませんobjDTテレフォン?その後、自分でデータを転送する必要はありません。

0

セル値は、セルの値をチェックを受ける前に:

if(!string.IsNullOrEmpty(dgTelFax.Rows[2].Cells[0].Value) { 
    strTelephoneID = dgTelFax.Rows[2].Cells[0].Value.Tostring(); 
}