DataGridView中顯示主鍵表值的幾種方法
WinForm在很多項(xiàng)目中應(yīng)用廣泛,同時(shí)也會(huì)遇到很多問(wèn)題,本文所提到的一些解決方法和思路,希望對(duì)大家有所幫助。51CTO編輯推薦《WinForm應(yīng)用與開(kāi)發(fā)視頻教程》
在項(xiàng)目中經(jīng)常遇到比如:客戶(hù)管理項(xiàng)目設(shè)計(jì)時(shí),客戶(hù)信息表包含客戶(hù)級(jí)別表中的級(jí)別編號(hào)字段,客戶(hù)級(jí)別表中的每個(gè)級(jí)別編號(hào)將對(duì)應(yīng)一個(gè)級(jí)別說(shuō)明,下面就是具體的做法:
客戶(hù)管理界面中的DataGridView綁定kh表,包括字段:客戶(hù)類(lèi)別(綁定客戶(hù)類(lèi)型表主鍵id),客戶(hù)公司,客戶(hù)電話……

界面中的類(lèi)別采用了combox控件綁定類(lèi)別表主鍵id,combox控件的name為L(zhǎng)B_CB顯示值為字段lbmc,綁定方法為:
- string sql = "select * from lb";
- SqlDataAdapter DA = new SqlDataAdapter(sql, Constr);
- DataTable DT = new DataTable();
- LB_CB.DataSource = DT;
- LB_CB.DisplayMember = "lbmc";
- LB_CB.ValueMember = "id";
連接字符串Constr可以從config里讀取也可以直接寫(xiě)在類(lèi)里。
界面中的DataGridView控件name為DGV綁定的是客戶(hù)信息表,綁定的代碼如下:
- string sql = "select * from kh";
- SqlDataAdapter DA = new SqlDataAdapter(sql, Constr);
- DataTable DT = new DataTable();
- DGV.DataSource = DA.Fill(DT);
現(xiàn)在設(shè)置一下DataGridView中顯示客戶(hù)類(lèi)別的列的顯示方式:
改變columtype屬性和DisplayStyle屬性值如下截圖

同時(shí)在顯示數(shù)據(jù)內(nèi)容的方法中加入如下代碼:
改變DataGridView的列類(lèi)型
- string sql = "select * from lb";
- SqlDataAdapter DA = new SqlDataAdapter(sql, Constr);
- DataTable DT = new DataTable();
- ((DataGridViewComboBoxColumn)DGV.Columns[1]).DataSource = DA.Fill(DT);
- ((DataGridViewComboBoxColumn)DGV.Columns[1]).DisplayMember = "lbmc";
- ((DataGridViewComboBoxColumn)DGV.Columns[1]).ValueMember = "id";
在點(diǎn)擊DGV的列時(shí),想實(shí)現(xiàn)將本條記錄顯示想下面的文本框里代碼如下:
- private void DGV_CellClick(object sender, DataGridViewCellEventArgs e)
- {
- if (e.RowIndex > -1)
- {
- id = DGV.Rows[e.RowIndex].Cells[0].Value.ToString();
- LB_CB.SelectedValue = DGV.Rows[e.RowIndex].Cells[1].Value;
- gs_TB.Text = DGV.Rows[e.RowIndex].Cells[2].Value.ToString();
- sj_TB.Text = DGV.Rows[e.RowIndex].Cells[3].Value.ToString();
- yx_TB.Text = DGV.Rows[e.RowIndex].Cells[4].Value.ToString();
- fzr_TB.Text = DGV.Rows[e.RowIndex].Cells[5].Value.ToString();
- }
- }
【編輯推薦】






















