数据绑定的问题

当我给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可以得到值


沧海一幻觉
浏览 520回答 2
2回答

萧十郎

首先你得知道ToString()方法的含义。如果类型没有专门地覆盖ToString()方法,那么默认返回的是类型的全名称。而DataRowView没有覆盖这个方法。那么DataRowView又是什么呢?查一下MSDN就可以知道,它是DataRow的视图,DataRow是DataTable的一行,而DataTable就是你绑定到ListBox上的类型。这下就明白了吧?绑定之后,ListBox上的每个Item都是一个DataRowView实例,因此你调用ListBox.Items[0].ToString()得到的就是System.Data.DataRowView。要想得到你想要的,必须使用SelectedValue属性,不能滥用ToString()方法。
打开App,查看更多内容
随时随地看视频慕课网APP