日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

WinForm中Combobox绑定值问题

發布時間:2025/6/17 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 WinForm中Combobox绑定值问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

好久沒寫過WinForm程序了,昨天閑來無事就試著寫個玩玩。界面中有兩個combobox控件,第二個combobox控件中綁定值是根據第一個combobox值而定的。當時自己寫的代碼是:

1 private void btnGetDBs_Click(object sender, EventArgs e)
2 {
3 string strconnection = "數據庫連接字符串" ;
4 conn = new SqlConnection(strconnection);
5 string sql = "Sql語句";
6
7 SqlDataAdapter da = new SqlDataAdapter(sql,conn);
8 DataSet ds = new DataSet();
9 da.Fill(ds, "table");
10
11 cmbDBs.DisplayMember = "Name";
12 cmbDBs.ValueMember = "Name";
13 cmbDBs.DataSource = ds.Tables[0].DefaultView;
14
15 }
16
17 private void cmbDBs_SelectedValueChanged(object sender, EventArgs e)
18 {
19 string strconnection = "數據庫連接字符串";
20 conn = new SqlConnection(strconnection);
21 string sql = string.Format("Sql語句", cmbDBs.SelectedValue.ToString());
22
23 SqlDataAdapter da = new SqlDataAdapter(sql, conn);
24 DataSet ds = new DataSet();
25 da.Fill(ds, "table");
26 cmbTables.DataSource = ds.Tables[0].DefaultView;
27 cmbTables.DisplayMember = "Name";
28 cmbTables.ValueMember = "Name";
29 }

可是在獲得cmbDBs.SelectedValue.ToString()值時說“未將對象引用到實例”或者就是取到“System.data.dataRowView”的值。后來在網上了下,只要將綁定第二個combobox的代碼寫在private void cmbDBs_SelectedIndexChanged(object sender, EventArgs e)事件中就能正確取出值了。即:

1 private void btnGetDBs_Click(object sender, EventArgs e)
2 {
3 string strconnection = "server=" + txtServiceIP.Text.Trim() + ";uid=" + txtUid.Text.Trim() + ";pwd=" + txtPwd.Text.Trim();
4 conn = new SqlConnection(strconnection);
5 string sql = "Select [Name] FROM Master..SysDatabases where DBId>4 ORDER BY Name";
6
7 SqlDataAdapter da = new SqlDataAdapter(sql,conn);
8 DataSet ds = new DataSet();
9 da.Fill(ds, "tb");
10
11 cmbDBs.DisplayMember = "Name";
12 cmbDBs.ValueMember = "Name";
13 cmbDBs.DataSource = ds.Tables[0].DefaultView;
14 }
15
16 private void cmbDBs_SelectedIndexChanged(object sender, EventArgs e)
17 {
18 string strconnection = "server=" + txtServiceIP.Text.Trim() + ";uid=" + txtUid.Text.Trim() + ";pwd=" + txtPwd.Text.Trim();
19 conn = new SqlConnection(strconnection);
20 string sql = string.Format("Select Name FROM {0}.dbo.SysObjects Where XType='U' ORDER BY Name ", cmbDBs.SelectedValue.ToString());
21
22 SqlDataAdapter da = new SqlDataAdapter(sql, conn);
23 DataSet ds = new DataSet();
24 da.Fill(ds, "tb");
25 cmbTables.DisplayMember = "Name";
26 cmbTables.ValueMember = "Name";
27 cmbTables.DataSource = ds.Tables[0].DefaultView;
28 }

另外在綁定時最好將這樣寫(個人覺得)

1 cmbTables.DisplayMember = "Name";
2 cmbTables.ValueMember = "Name";
3 cmbTables.DataSource = ds.Tables[0].DefaultView;

在默認的情況下combobox控件是可以自己手動輸入的,如果想讓它只讀則只需改變DropDownList屬性為DropDownList便可以了。

轉載于:https://www.cnblogs.com/zgshi/archive/2012/01/19/2326125.html

總結

以上是生活随笔為你收集整理的WinForm中Combobox绑定值问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。