WinForm中Combobox绑定值问题
好久没写过WinForm程序了,昨天闲来无事就试着写个玩玩。界面中有两个combobox控件,第二个combobox控件中绑定值是根据第一个combobox值而定的。当时自己写的代码是:
1 private void btnGetDBs_Click(object sender, EventArgs e) 2 { 3 string strconnection = "数据库连接字符串" ; 4 conn = new SqlConnection(strconnection); 5 string sql = "Sql语句"; 6 7 SqlDataAdapter da = new SqlDataAdapter(sql,conn); 8 DataSet ds = new DataSet(); 9 da.Fill(ds, "table");10 11 cmbDBs.DisplayMember = "Name";12 cmbDBs.ValueMember = "Name";13 cmbDBs.DataSource = ds.Tables[0].DefaultView;14 15 }16 17 private void cmbDBs_SelectedValueChanged(object sender, EventArgs e)18 {19 string strconnection = "数据库连接字符串";20 conn = new SqlConnection(strconnection);21 string sql = string.Format("Sql语句", cmbDBs.SelectedValue.ToString());22 23 SqlDataAdapter da = new SqlDataAdapter(sql, conn);24 DataSet ds = new DataSet();25 da.Fill(ds, "table");26 cmbTables.DataSource = ds.Tables[0].DefaultView;27 cmbTables.DisplayMember = "Name";28 cmbTables.ValueMember = "Name";29 }
可是在获得cmbDBs.SelectedValue.ToString()值时说“未将对象引用到实例”或者就是取到“System.data.dataRowView”的值。后来在网上了下,只要将绑定第二个combobox的代码写在private void cmbDBs_SelectedIndexChanged(object sender, EventArgs e)事件中就能正确取出值了。即:
1 private void btnGetDBs_Click(object sender, EventArgs e) 2 { 3 string strconnection = "server=" + txtServiceIP.Text.Trim() + ";uid=" + txtUid.Text.Trim() + ";pwd=" + txtPwd.Text.Trim(); 4 conn = new SqlConnection(strconnection); 5 string sql = "Select [Name] FROM Master..SysDatabases where DBId>4 ORDER BY Name"; 6 7 SqlDataAdapter da = new SqlDataAdapter(sql,conn); 8 DataSet ds = new DataSet(); 9 da.Fill(ds, "tb");10 11 cmbDBs.DisplayMember = "Name";12 cmbDBs.ValueMember = "Name";13 cmbDBs.DataSource = ds.Tables[0].DefaultView;14 }15 16 private void cmbDBs_SelectedIndexChanged(object sender, EventArgs e)17 {18 string strconnection = "server=" + txtServiceIP.Text.Trim() + ";uid=" + txtUid.Text.Trim() + ";pwd=" + txtPwd.Text.Trim();19 conn = new SqlConnection(strconnection);20 string sql = string.Format("Select Name FROM {0}.dbo.SysObjects Where XType='U' ORDER BY Name ", cmbDBs.SelectedValue.ToString());21 22 SqlDataAdapter da = new SqlDataAdapter(sql, conn);23 DataSet ds = new DataSet();24 da.Fill(ds, "tb");25 cmbTables.DisplayMember = "Name";26 cmbTables.ValueMember = "Name";27 cmbTables.DataSource = ds.Tables[0].DefaultView;28 }
另外在绑定时最好将这样写(个人觉得)
1 cmbTables.DisplayMember = "Name";2 cmbTables.ValueMember = "Name";3 cmbTables.DataSource = ds.Tables[0].DefaultView;
在默认的情况下combobox控件是可以自己手动输入的,如果想让它只读则只需改变DropDownList属性为DropDownList便可以了。
转载于:https://www.cnblogs.com/zgshi/archive/2012/01/19/2326125.html
WinForm中Combobox绑定值问题相关推荐
- WinForm中ComBoBox绑定显示值和实际值
在ASP.NET中ComBoBox可以绑定显示值和实际值,但是在Winform中却是没有的(通过DataSource绑定数据源的时候是可以的,但是有null值和空值的限制) (所有代码均从实际项目中截 ...
- WinForm 中ComboBox 绑定总结
1. DataTable 用DataTable直接绑定,只需要设置DataSource.DisplayMember.ValueMember三个属性即可. Code this.cmbConsumeSup ...
- WinForm中ComboBox绑定数据的用法
DataTable table= BLLPackageCategory.SelectType(); comboBox1.ValueMember = "Id"; ...
- c#(winform)中ComboBox和ListBox添加项完全解决
c#(winform)中ComboBox和ListBox添加项完全解决 c#(winform)中ComboBox和ListBox添加项完全解决 刚开始用.net 的winform开发,发现好些控件都很 ...
- delphi中combobox键值对
delphi中combobox键值对 2010-09-13 10:46:51| 分类: 默认分类 | 标签: |字号大中小 订阅 1.添加键值对: cbb1.Items.AddObject('显示 ...
- WinForm 中 comboBox控件之数据绑定
http://www.cnblogs.com/peterzb/archive/2009/05/30/1491923.html 下面介绍三种对comboBox绑定的方式,分别是泛型中IList和Dict ...
- Winform中DataGridView绑定IList数据源后的排序
首先,实现ICompare接口 public class ObjectPropertyCompare<T> : IComparer<T> { private PropertyD ...
- Ext.net中ComboBox如何绑定数据库中的值
今天在项目中再次碰到了问题,就是Combobox中的值如果是直接绑定很简单.简单添加项就行了.代码如下: <ext:ComboBox ID="ComBox_SecretsLevel&q ...
- WinForm下ComboBox获取绑定对象集的SelectedValue补充
在上文<WinForm下ComboBox设定SelectedValue总结>中,我列举了出现不能正常获取SlectedValue的一些方法.原文写得比较乱,引起读者的理解分歧,在此表示歉意 ...
最新文章
- 如何改变computed执行_企业管理|执行力差的企业一般有这几个点没做好
- js动态给当前点击元素添加css类
- Hadoop的学习前奏(一)——在Linux上安装与配置Hadoop
- 8种Python字符串拼接的方法,你知道几种?
- python停止运行tensorflow_Tensorflow 开启训练后卡死
- 【2015年第4期】大数据时代的数据挖掘 —— 从应用的角度看大数据挖掘(上)...
- Java 继承学习笔记
- oracle登录总结
- chm 转 html 带索引,chm 的项目文件中包含创建 chm 文件所需的HTML文件信息、目录表文件信息、索引文件信息、窗口属 - 试题答案网问答...
- vue 中 v-if 和 v-for 混用时应该注意的事项
- STC学习:导航按键与数字按键综合控制数码管
- Python基本图形绘制:turtle库
- 卸载oracle10g教程,卸载Oracle10g步骤
- 1206_MISRA_C规范学习笔记_Rule 10.1 Rule 10.2
- 没有巨头公司做内容支撑 剪辑软件公司小影科技上市后能跑多远?
- 针对Windows10下EPLAN2.7频繁重启的解决办法
- Photoshop修图的常用方法与技巧一
- 剑已配好,我们江湖见
- mix2线刷开发板救砖_小米MIX 2手机一键线刷救砖教程,轻松刷回官方系统
- [Git]git命令