无法绑定由多个部分组成的标识符“System.Data.DataRowView” 遇到问题转帖


一开始是从System.Data.DataRowView着手,但千篇一律,没什么帮助,后来从断点触发,发现是初始化的问题,就想既然能获得期望结果,那么代码是没问题的,应该是逻辑上的问题,增加if判断后还是如此,网上找了找初始化的问题集合,还真有,原来问题就出现在数据绑定到控件的顺序上,如下:
DataSet ds = new DataSet();
sda.Fill(ds);
cboGrade.DataSource = ds.Tables[0];//如果在给下面2个属性进行赋值前就绑定了数据,那么系统会自动给下面2个属性初始化(初始化的值非空非null,而是"System.Data.DataRowView",问题就出现在这里)
cboGrade.DisplayMember = "GradeName";
cboGrade.ValueMember = "GradeId";
cboGrade.SelectedIndex =-1;
 当修改成下面的结构时,问题解决:
DataSet ds = new DataSet();
sda.Fill(ds);

cboGrade.DisplayMember = "GradeName";
cboGrade.ValueMember = "GradeId";
cboGrade.DataSource = ds.Tables[0]; 
cboGrade.SelectedIndex =-1;
总结下:
当使用SelectedIndexChanged时,ValueMember在DataSource前进行赋值,当使用SelectedValueChanged时,ValueMember在DataSource后进行赋值,主要还是触发事件决定的;

转载于:https://www.cnblogs.com/lierjie/p/3651137.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值