DataGridView中顯示主鍵表值的幾種方法
WinForm在很多項目中應(yīng)用廣泛,同時也會遇到很多問題,本文所提到的一些解決方法和思路,希望對大家有所幫助。51CTO編輯推薦《WinForm應(yīng)用與開發(fā)視頻教程》
在項目中經(jīng)常遇到比如:客戶管理項目設(shè)計時,客戶信息表包含客戶級別表中的級別編號字段,客戶級別表中的每個級別編號將對應(yīng)一個級別說明,下面就是具體的做法:
客戶管理界面中的DataGridView綁定kh表,包括字段:客戶類別(綁定客戶類型表主鍵id),客戶公司,客戶電話……
界面中的類別采用了combox控件綁定類別表主鍵id,combox控件的name為LB_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里讀取也可以直接寫在類里。
界面中的DataGridView控件name為DGV綁定的是客戶信息表,綁定的代碼如下:
- string sql = "select * from kh";
- SqlDataAdapter DA = new SqlDataAdapter(sql, Constr);
- DataTable DT = new DataTable();
- DGV.DataSource = DA.Fill(DT);
現(xiàn)在設(shè)置一下DataGridView中顯示客戶類別的列的顯示方式:
改變columtype屬性和DisplayStyle屬性值如下截圖
同時在顯示數(shù)據(jù)內(nèi)容的方法中加入如下代碼:
改變DataGridView的列類型
- 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";
在點擊DGV的列時,想實現(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();
- }
- }
【編輯推薦】