一个关于数据绑定的问题

     这几天在做一个小东西,有一个关于数据绑定的问题,自已一直很郁闷,害我耗费了很多的时间,到最后还是没有搞明白事怎么回事,

我对ListBox和ComboBox进行数据绑定 ,在获取数据的时候一直出问题,以前学习的时候没有遇见过,

的绑定方法是

string SQL = "select * from UserInfo";
            ds=DB.GetDataSet (SQL);
            lboxUser.DataSource = ds.Tables [0];
            lboxUser.DisplayMember = "UserID";
在我获取数据时候,总是的得到值总是 System.Data.DataRowView  害的我郁闷的要死 最后我在博问问了一下,有人告诉应该这样

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

但是这样的方法在lboxUser.SelectValue可以得到正确的值 在用lbloxUser.Items[0].ToString()时候还是得到的是System.Data.DataRowView

我很是郁闷,最后我采用了一,

我发现控件的ItemsIndex顺序和数据源中的顺序是一样,所以我就用了一下两种种很赖皮的方法

方法一:

DataTable dt= (DataTable)(cmbType2.DataSource);

string Iems=dt.Rows[ItemIndex]["UserID"].ToString();//ItemIndex 是你要获取ListBox中的ItemIndex,这样就可以获取要获得数据了

这样就行

方法二:

这个方法比较简单。我看一下我的值是一个System.Data.DataRowView 看一下这个字符串发现这是一种数据类型

我就试试看看可不可以将他转换成对应的数据类型吧看看吧 结果已看可以得到数据,

DataRowView dr=lboxUser .Items [ItemIndex] as DataRowView ;//ItemIndex 是你要获取ListBox中的ItemIndex

string Iems=dt["UserID"].ToString();//这样就可以获取到要得到的数据

这样的方法有一个好处就是,在获取数据的时候可以将所有的需要列的数据获取下了,在ListBox操作的时候不用在和数据库操作了

省去了和数据库的连接

你可能感兴趣的:(数据绑定)