2013-04-09 51 views
1

我想從組合框中檢索數據並將其填充到數據網格視圖中。我正在使用Visual Studio C#Windows窗體。我的應用程序使用MySql數據庫檢索列價格,用戶和日期的數據。我試過這段代碼,但它並沒有填充任何數據網格視圖。我在填寫數據庫時沒有問題,但在添加要在數據網格視圖中填充的組合框之後,它不起作用。在C#中 - 從組合框中選擇的項目中檢索數據並填充到數據網格視圖

下面的代碼:

public void loadDataGridView_Main() 
{ 
    dgvMain.Rows.Clear(); 
    List<string>[] detailList = a.mysqlSelect(comboProd.SelectedItem + "Select * From sales"); 
    for (int i = 0; i < detailList.Length; i++) 
    { 
     dgvMain.Rows.Add(detailList[i][0], detailList[i][1], detailList[i][2], detailList[i][3]); 
    } 
} 

表格自動加載。

private void frmMain_Load(object sender, EventArgs e) 
{ 
    a = new MyLibrary("localhost", "root", "", "cashieringdb"); 
    loadDataGridView_Main(); 
    dataLog(); 
    fillCombo(); 
} 

comboProd是我comboBox

,這裏是我fillCombo方法我有這個

public void fillCombo() 
{ 
    string MyConString = "SERVER=localhost;" + 
          "DATABASE=cashieringdb;" + 
           "UID=root;" + 
           "PASSWORD='';"; 
    MySqlConnection connection = new MySqlConnection(MyConString); 
    string command = "select productAdd from settings"; 
    MySqlDataAdapter da = new MySqlDataAdapter(command, connection); 
    DataTable dt = new DataTable(); 
    da.Fill(dt); 

    comboProd.DataSource = dt; 
    comboProd.DisplayMember = "productAdd"; 
    connection.Close(); 
} 

此功能是沒有問題的變量名僅在增加產品和進行檢索例如,如果我添加Apple產品,它將保存到數據庫中,並且ComboBox將檢索要添加的產品Apple編輯列表中。

編輯

所以這裏是我的程序流程。

在我的數據網格視圖我有1 ComboBox和3列是我的數據字段GridView。在ComboBox它將填充我選擇的項目在數據庫端它將檢索數據庫中的任何值。這就是我這樣編碼的原因。

List<string>[] detailList = a.mysqlSelect(comboProd.SelectedItem + "Select * 

但是我不確定這一行。我很懷疑。我認爲這裏錯了。

+0

我們可以看到fillCombo方法嗎?有沒有拋出異常? – 2013-04-09 13:28:11

+1

另外,您正在使用comboProd.SelectedItem,但在使用fillCombo()填充組合框之前調用loadDataGridMainView_Main。這可能意味着組合框沒有選定的值, – 2013-04-09 13:30:39

+0

@ Shane.C我真的不知道我在做那行代碼,你可以給我更多關於該行的細節嗎? – Asker626 2013-04-09 13:37:26

回答

0
private void frmMain_Load(object sender, EventArgs e) 
{ 
    a = new MyLibrary("localhost", "root", "", "cashieringdb"); 
    fillCombo(); //fill combo before calling loadDataGridView_Main() 
    loadDataGridView_Main(); 
    dataLog();  
} 

剛剛更換一個聲明。現在檢查它。

+0

謝謝你,它也有幫助,但我仍然無法看到數據網格視圖中的任何東西。 – Asker626 2013-04-09 13:46:50

+0

請注意此行comboProd.SelectedItem +「選擇*從銷售」我不太確定這一點。 – Asker626 2013-04-09 13:47:43

+0

爲什麼要用直接查詢添加'comboProd.SelectedItem'? 「銷售」表有多少列? – Shaharyar 2013-04-09 13:50:36

0

使用DataGridViewComboBoxColumn類。設置數據源並根據需要分配ValueMember和DisplayMember列。添加obj轉換爲DataGridView的

DataGridViewComboBoxColumn dgc = new DataGridViewComboBoxColumn(); 
dgc.DataSource = ds; 
dgc.ValueMember = "columnname1"; 
dgc.DisplayMember = "columnname2" 

dataGridView1.Columns.Add(dgc); 
相關問題