欢迎光临 Rick 's BLOG
日志首页  | C# .Net编程  | 原创作品  | 生活点滴  | C\C++相关  | 多媒体相关※ERMP  | VB相关  | 其它运维与编程  |  留言簿
更新两个软件 DateTimePicker 数据绑定遭遇 null 值的解决方法
未知  ComboBox 绑定到数据表中一个列的问题
[ 发布日期:19年前 (2006-07-11) ]   [ 来自:rick@博客园 ] [分类:C# .Net编程]
数据表: Users
字段 ID ,类型 int
字段 UserName, 类型 string
字段 Group, 类型 int. (2 代表 管理员, 1 代表 认证用户 , 0 代表 注册用户)

在一个winform上有一个 bindingNavigator, bindingNavigator1
一个 bindingSource  bindingSource1.
一个textbox txtName.
一个 ComboBox cmbGroup.
cmbGroup的 dropdownstyle是dropdownlist.
Items集合里面有 注册用户,  认证用户, 管理员

数据绑定的设置如下:

//
取数据表
  DataTable dtUsers = GetDataTableBySQL("select * from Users");

  bindingSource1.DataSource = dtUsers;
  bindingNavigator1.bindingSource = bingdingSource1;
  txtName.DataBindings.Add("Text"bindingSource1"Name");

  cmbGroup.DataBindings.Add("SelectedIndex"bindingSource1"Group");

这样绑定好后, 运行界面上显示的数据都是正常的, cmbGroup能够显示正确的项目.
但有一个问题, bindingNavigator 不能导航(取消 cmbGroup的绑定,就能正常导航了).
如果删除当前记录 则能导航, 但 txtName和 cmbGroup的绑定却失效了.

不知道是什么原因,难道是不能绑定 ComboBox的 SelectedIndex ?

经过调查试验,可以使用绑定 SelectedValue 解决了这个问题.
方法如下:
[复制到剪贴板]

 
cmbGroup
.DataBindings.Add("SelectedValue"bindingSource1"Group");
 
//还需要增加下面的代码
DataTable DataTable1 = new DataTable();
DataTable1.Columns.Add("Name"typeof(string));
DataTable1.Columns.Add("Value"typeof(Int32));
DataTable1.Rows.Add(new object[] { "注册用户"});
DataTable1.Rows.Add(new object[] { "认证用户"});
DataTable1.Rows.Add(new object[] { "管理员"});

cmbGroup.DataSource DataTable1;
cmbGroup.DisplayMember "Name";
cmbGroup.ValueMember "Value";
 


 
这样就可以了.
引用通告地址 (0):
复制引用地址https://www.rickw.cn/trackback/119
复制引用地址https://www.rickw.cn/trackback/119/GBK
[ 分类:C# .Net编程  | 查看:5135 ]

暂时没有评论,快来发表一个评论吧。
发表评论
作者:   用户:[访客] 
评论:

表  情
禁止表情 | 禁止UBB | 禁止图片 | 识别链接
对不起,你没有权限上传附件!
验证:
 
PoweredBy R-Blog V1.00 © 2004-2024 WWW.RICKW.CN, Processed in second(s) , 7 queries    京ICP备17058477号-5