2012-02-20 17 views
0

DataGridViewがSqlDataReaderを介してデータベースクエリ結果にバインドされていて、nullのセル値をテストすると、予期しない結果が発生します。私は、データベースからの値がnullのであるにもかかわらず、すでに有料出力を取得していますDataGridviewのセル内のデータがnullかどうかを確認します。

SqlConnection con = new SqlConnection(
    "Data Source = .;Initial Catalog = SAHS;integrated security = true"); 
con.Open(); 
SqlCommand cmd3 = new SqlCommand(
    "select Status from vw_stdtfeedetail 
    where Std= 6 and Div ='B' and name='bbkk' and mnthname ='June'", con); 
SqlDataReader dr = cmd3.ExecuteReader(); 
BindingSource bs = new BindingSource(); 
bs.DataSource = dr; 
dataGridView3.DataSource = bs; 
this.monthFeeTableAdapter.Fill(this.sAHSDataSet4.MonthFee); 
if (dataGridView3.CurrentCell.Value == null) 
{ 
    MessageBox.Show("Pending"); 
} 
else 
{ 
    MessageBox.Show("Already Paid"); 
} 

私のコードは次のようなものです。

+1

を使用してみてください? – peroija

+0

@StingyJack - これは、OPが想定しているものとまったく反対です。彼はNULLを支払わないことを意味すると仮定しています。これは、何かが支払われた日付を示す列である可能性があります。したがって、NULLは、支払日がないことを示す完全な方法です。 – GarethD

+0

うん、私は明らかに月曜日の事件を持っている。 – StingyJack

答えて

3

はあなたがデバッグするときに値のショーのように何をするか、DBNull.Value代わりのnull

if (dataGridView3.CurrentCell.Value == DBNull.Value) 
{ 
    MessageBox.Show("Pending"); 
} 
else 
{ 
    MessageBox.Show("Already Paid"); 
} 
+0

ya ive done ..それはDBNull.Valueを使うのが適切です。 – HMcompfreak

+0

@HMcompfreakこれが正解であれば、正解とマークして「未回答」の質問パイルから削除してください。乾杯。 – GarethD

関連する問題