2016-06-22 23 views
-3

WORK附圖:無法處理默認錯誤對話框動態的DataGridView(多NULL值)

我已填充上button_click事件DataGridView。 (根據在文本框中輸入SQL查詢時,DataGridView將被填充)

private void button1_Click(object sender, EventArgs e) 
{ 
     string strSQLQuery = textBox1.Text.Trim(); 

     SqlDataAdapter dataAdapter = new SqlDataAdapter(strSQLQuery, strCon); 
     SqlCommandBuilder commandBuilder = new SqlCommandBuilder(dataAdapter); 
     DataTable dt = new DataTable(); 
     dt.Locale = System.Globalization.CultureInfo.InvariantCulture; 
     dataAdapter.Fill(dt); 
     dataGridView1.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCellsExceptHeader); 
     dataGridView1.ReadOnly = true; 
     dataGridView1.DataSource = dt; 
     bool flag = false; 
     if (!dataGridView1.Rows[dataGridView1.CurrentCell.RowIndex].IsNewRow) 
     { 
      foreach (DataGridViewCell cell in dataGridView1.Rows[dataGridView1.CurrentCell.RowIndex].Cells) 
      { 
       if (cell.Value == System.DBNull.Value) 
        flag = true; 
      } 
     } 
     if(flag) 
      MessageBox.Show("Many cells are empty"); 
} 

問題:

這工作完全如果在該行一列含有NULL值。 但是,如果在行的任何單元格中找到一個或多個NULL值,我會收到與我的代碼中一樣的消息框"Many cells are empty"。當我嘗試移動水平滾動條(我用來顯示更多列)時,我得到以下DataGridView默認錯誤對話框。

enter image description here

受審的解決方案:

我曾嘗試以下解決方案。但是沒有人努力解決這個問題。請考慮幫助解決這個問題。

LINK 1 - MSDN - DataGridViewDataErrorEventArgs

LINK 2 - 社會MSDN網站

LINK 3 - 在StackOverflow

LINK 4驗證答案 - 在Experts-Exchange

所有建議和驗證的答案,我也試着避免使用以下方法彈出此錯誤。但這似乎並沒有解決這個問題。

private void dataGridView1_DataError(object sender, DataGridViewDataErrorEventArgs e) 
{ 
    e.Cancel = true; 
} 

初步信息

  • IDE:的Visual Studio 2010專業

  • 淨: 4.0版

  • 使用語言: C#

  • 數據庫: SQL Server 2008中

+0

該消息表示沒有錯的查詢,但有一些繪製圖像。發佈更多代碼。你對結果返回的結果是什麼?有些字段中有圖片嗎? –

+0

沒有圖像存儲在數據庫中。沒有涉及其他重要的代碼。 在窗體窗體中,使用一個文本字段(textBox1),一個按鈕(button1)和一個數據網格(dataGridView1)。 當應用程序運行時,我手動在textbox1中輸入查詢(比如select * from table1),然後點擊button1,此button1_click()方法觸發並填充datagridview。 table1中的某些單元格包含NULL,並顯示錯誤(如圖中所示)。我嘗試了所有提到的「TRIED SOLUTIONS」,但沒有什麼能幫助克服/拋出這個錯誤。 你可以在你的IDE中嘗試這些,並面對同樣的問題。 –

+0

你的問題是不可重複的,也許你應該發佈別的東西,以便我們可以重現你得到像'table1'模式和一些虛構數據的錯誤。目前這段代碼對我來說工作正常! –

回答

1

嘗試在不同的系統。這對我來說很完美。

也清理並重建您的解決方案並重新啓動您的IDE。或者嘗試清除系統的緩存,臨時文件。

IDE:的Visual Studio 2013

.Net:4.0