一個關於資料繫結的問題

來源:互聯網
上載者:User

     這幾天在做一個小東西,有一個關於資料繫結的問題,自已一直很鬱悶,害我耗費了很多的時間,到最後還是沒有搞明白事怎麼回事,

我對ListBox和ComboBox進行資料繫結 ,在擷取資料的時候一直出問題,以前學習的時候沒有遇見過,

的Binder 方法是

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操作的時候不用在和資料庫操作了

省去了和資料庫的串連

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.