vb.net datagridview数据批量导入sql_【自学C#】|| 笔记 44 ComboBox:组合框控件数据绑定...
一、ComboBox:組合框控件數(shù)據(jù)綁定
????在 Windows 應(yīng)用程序中很多控件都提供了 DataSource 屬性,并將 DataSet 或 DataTable 的值直接賦給該屬性,這樣在控件中即可顯示從數(shù)據(jù)庫中查詢出來的數(shù)據(jù)。
????常用的數(shù)據(jù)綁定控件有文本框(TextBox)、標(biāo)簽(Label)、列表框(ListBox)、組合框(ComboBox)、數(shù)據(jù)表格(DataGridView)等。
????下面以組合框控件為例來講解一下數(shù)據(jù)綁定的應(yīng)用。
可視化數(shù)據(jù)綁定
????組合框控件(ComboBox)在 Windows 窗體應(yīng)用程序中是常用的控件,例如用于存放省市信息、專業(yè)、圖書類型、房間類型等。
????在 Windows 窗體應(yīng)用程序中提供了可視化數(shù)據(jù)綁定和使用代碼綁定數(shù)據(jù)的方法。
????使用數(shù)據(jù)綁定的方式綁定組合框控件直接單擊組合框的 "" 圖標(biāo),彈出“ComboBox任務(wù)”菜單,如下圖所示。
在窗臺上,找到ComboBox控件,并且點(diǎn)擊上面的圖標(biāo),就會彈出上面的那個。然后點(diǎn)擊復(fù)選框,就會變成下面這樣。
在該菜單中
“數(shù)據(jù)源”組合框用于選擇要連接數(shù)據(jù)庫中的數(shù)據(jù)表,相當(dāng)于為控件設(shè)置 DataSource 屬性;
“顯示成員”組合框用于設(shè)置在組合框中顯示的列名,可以通過組合框的Text屬性獲取;
“值成員”組合框用于設(shè)置組合框中的隱藏值,可以通過組合框的 Value 屬性獲取;
“選定值”組合框用于設(shè)置組合框中所選值使用的列名。
下面通過實(shí)例來演示組合框的綁定。
????1.例
????創(chuàng)建 Windows 窗體應(yīng)用程序,設(shè)置顯示專業(yè)信息的組合框,并將“顯示成員”設(shè)置為專業(yè)名稱列、將“值成員”設(shè)置為專業(yè)編號、將“選定值”設(shè)置為“計算機(jī)”。
????根據(jù)題目要求,先創(chuàng)建專業(yè)信息表,建表語句如下。
create table major( id int primary key identity(1,1), name varchar(20) unique);向該表中添加計算機(jī)、英語、自動化 3 個專業(yè)信息,通過“ComboEox任務(wù)”菜單設(shè)置數(shù)據(jù)綁定項(xiàng),首先選擇“數(shù)據(jù)源”組合框,并單擊“添加項(xiàng)目數(shù)據(jù)源”鏈接,彈出如下圖所示的對話框。
????總之找到數(shù)據(jù)源,點(diǎn)擊組合框,點(diǎn)擊“添加項(xiàng)目數(shù)據(jù)源”。
????彈出這個。
????下一步
????下一步
單擊“新建連接”
????建立數(shù)據(jù)庫連接。
也就回到這里。
????其實(shí)也是之前建立好的。
然后選則一個選項(xiàng)。
下一步
下一步
選中要使用的數(shù)據(jù)表
數(shù)據(jù)源也就設(shè)置好了。
????這里
????????顯示成員:則表示在下列菜單中輸出的項(xiàng)。
????????值成員:一般就是標(biāo)號,也就是ID。
????????選定值:也就是字段名,所以這里依舊是name。
????然后通過運(yùn)行也就成功了。
使用代碼綁定組合框
與數(shù)據(jù)綁定控件設(shè)置的屬性類似,需要通過代碼設(shè)置組合框的數(shù)據(jù)源、顯示成員、值成員等內(nèi)容。
具體設(shè)置的語句如下。
下面通過實(shí)例演示如何通過編寫代碼綁定組合框。
????1.例
????使用代碼的方式綁定組合框顯示專業(yè)名稱,每次切換選項(xiàng)后彈出消息框顯 示組合框中當(dāng)前選擇的值。
????將上一面的實(shí)例中的數(shù)據(jù)綁定方式換成代碼方式來綁定組合框顯示專業(yè)名稱,在窗體的加載事件中加入綁定組合框的代碼,代碼如下。
private void Form1_Load(object sender, EventArgs e) { //數(shù)據(jù)庫連接串 string connStr = "Data Source=.;Initial Catalog=text;User ID=sa;Password=123"; //創(chuàng)建SqlConnection的實(shí)例 SqlConnection conn = null; try { conn = new SqlConnection(connStr); //打開數(shù)據(jù)庫 conn.Open(); string sql = "select * from userinfo"; //創(chuàng)建SqlDataAdapter類的對象 SqlDataAdapter sda = new SqlDataAdapter(sql, conn); //創(chuàng)建DataSet類的對象 DataSet ds = new DataSet(); //使用SqlDataAdapter對象sda將查新結(jié)果填充到DataSet對象ds中 sda.Fill(ds); //設(shè)置組合框的DataSource屬性 comboBox1.DataSource = ds.Tables[0]; //設(shè)置組合框的DisPlayMember 屬性 comboBox1.DisplayMember = "name"; //設(shè)置組合框的ValueMember屬性 comboBox1.ValueMember = "id"; } catch (Exception ex) { MessageBox.Show("出現(xiàn)錯誤!" + ex.Message); } finally { if (conn != null) { //關(guān)閉數(shù)據(jù)庫連接 conn.Close(); }????????????} }分析:
????首先導(dǎo)入包:using System.Data.SqlClient;
????然后是連接數(shù)據(jù)庫,并進(jìn)行表的查詢。
????再通過DataSet類,進(jìn)行往組合框控件中存放數(shù)據(jù)。
運(yùn)行結(jié)果:跟上面一樣。
????如果在上面的組合框中,添加選項(xiàng)改變事件。并將組合框中當(dāng)前顯示的內(nèi)容顯示到消息框中,代碼如下。
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { if (comboBox1.Tag != null) { //獲取組合框中顯示的值 string name = comboBox1.Text; //彈出消息框 MessageBox.Show("您選擇的專業(yè)是:" + name); } }分析:
????當(dāng)組合框中的內(nèi)容發(fā)生改變時觸發(fā)。
????也就是通過消息框的方式進(jìn)行輸出。
運(yùn)行結(jié)果:
在實(shí)際工作中,使用代碼綁定的方式是應(yīng)用最多的方式,一方面體現(xiàn)了代碼的靈活性,另一個方面也增強(qiáng)了代碼的可移植性。
二、DataGridView:數(shù)據(jù)表格控件數(shù)據(jù)綁定
????數(shù)據(jù)表格控件是 WinForm 窗體應(yīng)用程序中用于查詢時以表格形式顯示數(shù)據(jù)的重要控件,同樣數(shù)據(jù)表格控件也可以使用可視化數(shù)據(jù)綁定和代碼的方式來綁定數(shù)據(jù)表中的數(shù)據(jù),并能在數(shù)據(jù)表格控件中實(shí)現(xiàn)對表中數(shù)據(jù)的修改和刪除操作。
????下面分別介紹使用可視化數(shù)據(jù)綁定方式綁定數(shù)據(jù)表格控件和使用代碼方式綁定數(shù)據(jù)表格控件。
可視化方式綁定 DataGridView 控件
????數(shù)據(jù)表格控件的可視化數(shù)據(jù)綁定也是通過控件的任務(wù)菜單完成的,如下圖所示。
????總之先找到DataGridView控件
????在“DataGridView 任務(wù)”菜單中提供了“選擇數(shù)據(jù)源”“編輯列”“添加列”,以及“啟用添加”“啟用編輯”“啟用刪除”“啟用列重新排序”“在父容器中停靠”等選項(xiàng)。
其中:
選擇數(shù)據(jù)源:與組合框控件中選擇數(shù)據(jù)源的操作是相同的。
編輯列:用于在 DataGridView 控件中編輯列,包括添加列、給列設(shè)置別名等操作。
添加列:用于向 DataGridView 控件中添加列,并且可以在 DataGridView 控件中添加不同類型的控件用于顯示新添加的列,例如添加一個按鈕用于修改或刪除表中的數(shù)據(jù)。
啟用添加:允許用戶向 DataGridView 控件中添加一行,相當(dāng)于將 DataGridView 控件中的 AllowUserToAddRows 屬性設(shè)置為 True。
啟用編輯:允許用戶編輯 DataGridView 控件中的值,相當(dāng)于將 DataGridView 控件中的 Readonly 屬性設(shè)置為 False。
啟用刪除:允許用戶刪除 DataGridView 控件中的值,相當(dāng)于將 DataGridView 控件中的 AllowUserToDeleteRows 屬性設(shè)置為 True。
啟用列重新排序:允許啟用手動列重新設(shè)置,相當(dāng)于將 DataGridView 控件中的 AllowUserToOrderColumn 屬性設(shè)置為 True。
在父容器中停靠:允許 DataGridView 控件在所在的窗體中最大化。
????下面通過實(shí)例來演示以可視化的方法綁定 DataGridView 控件。
????1.例
????使用可視化綁定的方法將專業(yè)信息表中的專業(yè)編號和專業(yè)名稱顯示在 DataGridView 控件中,并為表中的列名設(shè)置別名。
????根據(jù)題目要求,完成該實(shí)例需要以下步驟。
????1) 窗體設(shè)計
????創(chuàng)建 Windows 窗體應(yīng)用程序,并添加一個用于顯示專業(yè)信息的窗體,如下圖所示。
????總之就是這個DataGridView控件
????2) 為窗體設(shè)置數(shù)據(jù)源
????在上圖所示的界面中單擊 DataGridView 控件上的“”按鈕,在彈出的“DataGridView 任務(wù)”菜單中的選擇數(shù)據(jù)源組合框中為 DataGridView 控件設(shè)置數(shù)據(jù)源。
????選擇數(shù)據(jù)源的方法跟?ComboBox控件的類型差不多,由于在前面的使用組合框的實(shí)例中已經(jīng)為應(yīng)用程序設(shè)置過數(shù)據(jù)源,所以這里 DataGridView 控件中的數(shù)據(jù)源直接選擇已經(jīng)設(shè)置好的數(shù)據(jù)源即可。
????在選擇數(shù)據(jù)源后,“DataGridView任務(wù)”菜單的效果如下圖所示。? ? ??
????3) 編輯列
????在上圖所示的界面中單擊“編輯列”,彈出如下圖所示的對話框。
在該對話框的左側(cè)列出了專業(yè)信息表(major)中的所有列,右側(cè)列出了列的屬性,常用的屬性如下表所示。
| Frozen | 設(shè)置用戶在水平滾動 DataGridView 控件時列是否移動,默認(rèn)是 False |
| ColumnType | 設(shè)置顯示列時的控件類型,默認(rèn)是文本框 |
| DataPropertyName? | 設(shè)置綁定數(shù)據(jù)源中的列 |
| HeaderName? | 設(shè)置在 DataGridView 列中顯示的列標(biāo)題 |
| Visible? | 設(shè)置該列是否可見 |
????完成以上 3 個步驟后運(yùn)行該窗體,效果如下圖所示。
????(我這里其實(shí)在連接數(shù)據(jù)源后,就已經(jīng)能默認(rèn)完成了。)
運(yùn)行結(jié)果:
????從上面的運(yùn)行效果可以看出,使用可視化數(shù)據(jù)綁定方式可以快速完成將數(shù)據(jù)表中的數(shù)據(jù)顯示在 DataGridView 控件中的操作,并可以很容易地對綁定列的屬性進(jìn)行相關(guān)設(shè)置。
使用代碼綁定 DataGridView 控件
????使用代碼綁定 DataGridView 控件時需要為該控件設(shè)置數(shù)據(jù)源 (DataSource) 屬性,具 體的語句如下。
DataGridView 控件的名稱.DataSource = DataTable 對象 ;????如果使用 DataSet 對象為 DataSource 屬性賦值,則需要使用 DataSet 對象的 Tables 屬性選擇指定的數(shù)據(jù)表。
下面通過實(shí)例來演示如何使用代碼綁定 DataGridView 控件。
????2.例
????使用代碼的方式綁定 DataGridView 控件。
????根據(jù)題目要求,在窗體的加載事件中加入代碼綁定 DataGridView 控件,實(shí)現(xiàn)的代碼如下。
private void Form1_Load(object sender, EventArgs e) { //數(shù)據(jù)庫連接串 string connStr = "Data Source=.;Initial Catalog=text;User ID=sa;Password=123"; //創(chuàng)建SqlConnection的實(shí)例 SqlConnection conn = null; try { conn = new SqlConnection(connStr); //打開數(shù)據(jù)庫 conn.Open(); string sql = "select * from userinfo"; //創(chuàng)建SqlDataAdapter類的對象 SqlDataAdapter sda = new SqlDataAdapter(sql, conn); //創(chuàng)建DataSet類的對象 DataSet ds = new DataSet(); //使用SqlDataAdapter對象sda將查新結(jié)果填充到DataSet對象ds中 sda.Fill(ds); //設(shè)置表格控件的DataSource屬性 dataGridView1.DataSource = ds.Tables[0]; } catch (Exception ex) { MessageBox.Show("出現(xiàn)錯誤!" + ex.Message); } finally { if (conn != null) { //關(guān)閉數(shù)據(jù)庫連接 conn.Close(); } } }分析:
????在窗體加載中自動運(yùn)行。
????首先依舊是連接數(shù)據(jù)庫,并打開數(shù)據(jù)庫,然后執(zhí)行數(shù)據(jù)庫的查詢語句。
????然后通過DataSet類的方式進(jìn)行控件的傳輸傳值。
運(yùn)行結(jié)果:
????從上面的運(yùn)行效果可以看出,通過設(shè)置 DataGridView 控件的 DataSource 屬性即可綁定 DataGridView 控件,但綁定后的 DataGridView 控件中的標(biāo)題是數(shù)據(jù)表中的列名。
????如果需要更改 DataGridView 控件的列標(biāo)題,則需要在上面的代碼中加入以下代碼。
//設(shè)置第 1 列的列標(biāo)題dataGridView1.Columns[0] .HeaderText="編號";//設(shè)置第2列的列標(biāo)題dataGridView1. Columns[1].HeaderText="專業(yè)名稱";完整代碼:
private void Form1_Load(object sender, EventArgs e) { //數(shù)據(jù)庫連接串 string connStr = "Data Source=.;Initial Catalog=text;User ID=sa;Password=123"; //創(chuàng)建SqlConnection的實(shí)例 SqlConnection conn = null; try { conn = new SqlConnection(connStr); //打開數(shù)據(jù)庫 conn.Open(); string sql = "select * from userinfo"; //創(chuàng)建SqlDataAdapter類的對象 SqlDataAdapter sda = new SqlDataAdapter(sql, conn); //創(chuàng)建DataSet類的對象 DataSet ds = new DataSet(); //使用SqlDataAdapter對象sda將查新結(jié)果填充到DataSet對象ds中 sda.Fill(ds); //設(shè)置表格控件的DataSource屬性 dataGridView1.DataSource = ds.Tables[0]; //設(shè)置第 1 列的列標(biāo)題 dataGridView1.Columns[0].HeaderText = "編號"; //設(shè)置第2列的列標(biāo)題 dataGridView1.Columns[1].HeaderText = "專業(yè)名稱"; } catch (Exception ex) { MessageBox.Show("出現(xiàn)錯誤!" + ex.Message); } finally { if (conn != null) { //關(guān)閉數(shù)據(jù)庫連接 conn.Close(); } } }運(yùn)行結(jié)果:
總結(jié)
以上是生活随笔為你收集整理的vb.net datagridview数据批量导入sql_【自学C#】|| 笔记 44 ComboBox:组合框控件数据绑定...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 年轻人为什么换不动手机了引热议 网友:更
- 下一篇: c#quartz触发_SpringBoo