在項目中經常遇到綁定在Datagridview時,表中的一個字段是主鍵表中的主鍵,但是想在顯示的時候顯示的是該條主鍵對應的值,比如:客戶管理項目設計時,客戶信息表包含客戶級別表中的級別編號字段,客戶級別表中的每個級別編號將對應一個級別說明,下面就是具體的做法:
客戶管理界面中的Datagridview綁定kh表,包括字段:客戶類別綁定客戶類型表主鍵id),客戶公司,客戶電話……
界面中的類別采用了combox控件綁定類別表主鍵id,combox控件的name為LB_CB顯示值為字段lbmc,綁定方法為:
Code
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綁定的是客戶信息表,綁定的代碼如下:
1 string sql = "select * from kh";
2 SqlDataAdapter DA = new SqlDataAdapter(sql, Constr);
3 DataTable DT = new DataTable();
4 DGV.DataSource = DA.Fill(DT);
現在設置一下Datagridview中顯示客戶類別的列的顯示方式:
改變columtype屬性和DisplayStyle屬性值如下截圖
同時在顯示數據內容的方法中加入如下代碼:
改變datagridview的列類型
1 string sql = "select * from lb";
2 SqlDataAdapter DA = new SqlDataAdapter(sql, Constr);
3 DataTable DT = new DataTable();
4 ((DataGridViewComboBoxColumn)DGV.Columns[1]).DataSource = DA.Fill(DT);
5 ((DataGridViewComboBoxColumn)DGV.Columns[1]).DisplayMember = "lbmc";
6 ((DataGridViewComboBoxColumn)DGV.Columns[1]).ValueMember = "id";
在點擊DGV的列時,想實現將本條記錄顯示想下面的文本框裡代碼如下:
Code
1 private void DGV_CellClick(object sender, DataGridViewCellEventArgs e)
2 {
3 if (e.RowIndex > -1)
4 {
5 id = DGV.Rows[e.RowIndex].Cells[0].Value.ToString();
6 LB_CB.SelectedValue = DGV.Rows[e.RowIndex].Cells[1].Value;
7 gs_TB.Text = DGV.Rows[e.RowIndex].Cells[2].Value.ToString();
8 sj_TB.Text = DGV.Rows[e.RowIndex].Cells[3].Value.ToString();
9 yx_TB.Text = DGV.Rows[e.RowIndex].Cells[4].Value.ToString();
10 fzr_TB.Text = DGV.Rows[e.RowIndex].Cells[5].Value.ToString();
11 }
12 }
13
本文出自 “葉子文文” 博客,轉載請與作者聯系!