首页 新闻 会员 周边

数据绑定的问题

0
[已解决问题] 解决于 2011-10-07 19:08

当我给Combox 和 ListBox 绑定过数据之后 。在获取数据的时候总是得到  System.Data.DataRowView 这个值 为什么呀 ; 绑定代码是

  string SQL = "select * from UserInfo";
            DataSet ds=DB.GetDataSet (SQL);
            ListBox.DataSource = ds.Tables [0];
            ListBox.DisplayMember = "UserID";

            ListBox.ValueMember = "UserID";

我用的是SQL 2005 win7和s2010

使用 ListBox.Items [0].ToString ()得到是 System.Data.DataRowView  但是使用System.SelectValue可以得到值

三月软件工作室——任忌的主页 三月软件工作室——任忌 | 小虾三级 | 园豆:524
提问于:2011-02-16 15:46
< >
分享
最佳答案
0

首先你得知道ToString()方法的含义。如果类型没有专门地覆盖ToString()方法,那么默认返回的是类型的全名称。而DataRowView没有覆盖这个方法。

那么DataRowView又是什么呢?查一下MSDN就可以知道,它是DataRow的视图,DataRow是DataTable的一行,而DataTable就是你绑定到ListBox上的类型。这下就明白了吧?

绑定之后,ListBox上的每个Item都是一个DataRowView实例,因此你调用ListBox.Items[0].ToString()得到的就是System.Data.DataRowView。要想得到你想要的,必须使用SelectedValue属性,不能滥用ToString()方法。

麒麟.NET | 老鸟四级 |园豆:3614 | 2011-02-16 16:37
其他回答(2)
0
邀月 | 园豆:25475 (高人七级) | 2011-02-16 15:56
0

DataRowView row = ListBox.Items [0] as DataRowView;

int userID = Convert.ToInt32(row.Row("UserID"));

彭汉生 | 园豆:1233 (小虾三级) | 2011-02-16 16:35
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册