在项目中经常遇到绑定在DataGridView时,表中的一个字段是主键表中的主键,但是想在显示的时候显示的是该条主键对应的值,如何解决这个问题呢?本文为大家提供一个思路。
WinForm在许多项目中运用广泛,一起也会遇到许多问题,本文所说到的一些解决办法和思路,期望对我们有所协助。51CTO修改引荐《WinForm运用与开发视频教程》
在项目中常常遇到比方:客户办理项目设计时,客户信息表包含客户等级表中的等级编号字段,客户等级表中的每个等级编号将对应一个等级阐明,下面便是详细的做法:
客户办理界面中的DataGridView绑定kh表,包含字段:客户类别(绑定客户类型表主键id),客户公司,客户电话……
界面中的类别采用了combox控件绑定类别表主键id,combox控件的name为LB_CB显现值为字段lbmc,绑定办法为:
- stringsql="select*fromlb";
- SqlDataAdapterDA=newSqlDataAdapter(sql,Constr);
- DataTableDT=newDataTable();
- LB_CB.DataSource=DT;
- LB_CB.DisplayMember="lbmc";
- LB_CB.ValueMember="id";
衔接字符串Constr能够从config里读取也能够直接写在类里。
界面中的DataGridView控件name为DGV绑定的是客户信息表,绑定的代码如下:
- stringsql="select*fromkh";
- SqlDataAdapterDA=newSqlDataAdapter(sql,Constr);
- DataTableDT=newDataTable();
- DGV.DataSource=DA.Fill(DT);
现在设置一下DataGridView中显现客户类别的列的显现办法:
改动columtype特点和DisplayStyle特点值如下截图
一起在显现数据内容的办法中参加如下代码:
改动DataGridView的列类型
- stringsql="select*fromlb";
- SqlDataAdapterDA=newSqlDataAdapter(sql,Constr);
- DataTableDT=newDataTable();
- ((DataGridViewComboBoxColumn)DGV.Columns[1]).DataSource=DA.Fill(DT);
- ((DataGridViewComboBoxColumn)DGV.Columns[1]).DisplayMember="lbmc";
- ((DataGridViewComboBoxColumn)DGV.Columns[1]).ValueMember="id";
在点击DGV的列时,想实现将本条记载显现想下面的文本框里代码如下:
- privatevoidDGV_CellClick(objectsender,DataGridViewCellEventArgse)
- {
- 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();
- }
- }
【修改引荐】
- C#在WinForm开发中Label换行办法
- C#中运用多线程拜访Winform问题解决方案
- 体会VS.NET 2005的winform新功能
- WinForm程序中运用控制台作为输出窗口
- 用Winform傻瓜式建立asp.net mvc结构