datagridview中使用DataGridViewComboBoxColumn
2017-08-25 13:39
1046 查看
在datagridview中使用自带的DataGridViewComboBoxColumn,加载数据库中的数据,选中和保存所需要的数据
实现效果如图
加载数据库已保存的数
![](https://img-blog.csdn.net/20170825132740348?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc3VucGluZzE3Nw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
选择自己所需要的数据
![](https://img-blog.csdn.net/20170825132921554?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc3VucGluZzE3Nw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
具体代码如下
datagridview命名为:dgvDrugList
添加基本列及对应的设计名等,如下图
![](https://img-blog.csdn.net/20170825133435972?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc3VucGluZzE3Nw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
datagridview的EditMode设置为EditOnEnter
代码如下
窗体事件添加一个方法
方法具体代码
点击保存事件对选中后的信息进行保存
实现效果如图
加载数据库已保存的数
选择自己所需要的数据
具体代码如下
datagridview命名为:dgvDrugList
添加基本列及对应的设计名等,如下图
datagridview的EditMode设置为EditOnEnter
代码如下
窗体事件添加一个方法
private void DrugMaintainFrm_Load(object sender, EventArgs e) { try { dbInfo = new DbInfo(); // initDisp();//显示数据 initFrm(); //初始化界面 } catch (Exception ex) { Error.ErrProc(ex); } }
方法具体代码
#region 数据初始化 /// <summary> /// 将窗体数据显示到各个控件 /// </summary> private void initFrm() { dsWord = GetWordIDList();//用药途径 dsFreq = dbInfo.GetTableData("PERFORM_FREQ_DICT", string.Empty); //用药途径下拉列表 dsWord.Tables[0].DefaultView.Sort = "Id"; DataGridViewComboBoxColumn cbxColumn = (DataGridViewComboBoxColumn)dgvDrugList.Columns["wordid"]; cbxColumn.DataSource = dsWord.Tables[0].DefaultView; cbxColumn.DisplayMember = "DESCRIBE"; cbxColumn.ValueMember = "Id"; // 频次下拉列表 DataGridViewComboBoxColumn cbxColumn1 = (DataGridViewComboBoxColumn)dgvDrugList.Columns["freq_desc"]; cbxColumn1.DataSource = dsFreq.Tables[0].DefaultView; cbxColumn1.DisplayMember = "freq_desc"; cbxColumn1.ValueMember = "freq_desc"; string sql = string.Format(@"select b.class_name,a.* from drug_dict a ,drug_class_dict b where a.community_code='{0}' and a.drug_class=b.class_code and a.community_code=b.community_code", GVars.CommunityCode); dsDrugList = dbInfo.GetData(sql, "drug_dict"); dgvDrugList.AutoGenerateColumns = false;//去掉自动增加列 dgvDrugList.DataSource = dsDrugList.Tables[0].DefaultView; } /// <summary> /// 用药途径 /// </summary> private DataSet GetWordIDList() { string wordSql = string.Format(@"select a.Id,a.DESCRIBE from dict_word a,dict_category b where a.category_id=b.id and b.code='ADMINISTRATION_DICT'"); DataSet dswordList = dbInfo.GetData(wordSql, "dict_word"); return dswordList; } /// <summary> /// 执行频次 /// </summary> private DataSet GetWFREQList() { string freqSql = string.Format(@"select serial_no,freq_desc from PERFORM_FREQ_DICT "); DataSet dsfreqList = dbInfo.GetData(freqSql, "PERFORM_FREQ_DICT"); return dsfreqList; } #endregion
点击保存事件对选中后的信息进行保存
private void btnSave_Click(object sender, EventArgs e) { try { this.Validate(); // 更新DB if (dsDrugList.HasChanges() == false) { GVars.Msg.Show("I0006"); return; } dsDrugList.Tables[0].TableName = "drug_dict"; dbInfo.SaveTableData(dsDrugList.GetChanges()); dsDrugList.AcceptChanges(); MessageBox.Show("保存成功!", "提示信息"); //initDisp(); initFrm(); } catch (Exception ex) { MessageBox.Show(ex.ToString()); //initDisp(); initFrm(); return; } }
相关文章推荐
- c# winform 之DataGridViewComboBoxColumn的使用
- DataGridViewComboBoxColumn的使用
- DataGridViewComboBoxColumn的使用
- DataGridViewComboBoxColumn使用注意点
- DataGridViewComboBoxColumn的使用
- 【转】DataGridViewComboBoxColumn的使用
- DataGridView中的DataGridViewComboBoxColumn使用时的一些问题
- DataGridViewComboBoxColumn 使用
- DataGridViewComboBoxColumn 使用
- 【转】DataGridViewComboBoxColumn的使用
- DataGridViewComboBoxColumn的使用和其他方式的实现
- C# Winform中DataGridView的DataGridViewComboBoxColumn使用方法
- DataGridViewComboBoxColumn的使用示例
- DataGridViewComboboxColumn 使用 Enum的几种方式
- winform 在datagridview中使用 combobox,datetimepicker
- WPF DataGrid 中的DataGridComboBoxColumn 使用
- DataGridView绑定数据,同时绑定DataGridViewComboBoxColumn列的值
- 如何给DataGridViewComboBoxColumn写事件
- DataGridViewComboBoxColumn 绑定对象集合时存在BUG?
- DataGridView中DataGridViewComboBoxColumn无法赋值问题