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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > C# >内容正文

C#

vb.net datagridview数据批量导入sql_【自学C#】|| 笔记 44 ComboBox:组合框控件数据绑定...

發(fā)布時間:2023/12/10 C# 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 vb.net datagridview数据批量导入sql_【自学C#】|| 笔记 44 ComboBox:组合框控件数据绑定... 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、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è)置的語句如下。

組合框?qū)ο?DataSource = DataTable 的對象//設(shè)置組合框的顯示成員屬性組合框?qū)ο?DisplayMember = 列名//設(shè)置組合框的值成員屬性組合框?qū)ο?ValueMember = 列名

下面通過實(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è)置該列是否可見
????在上圖所示的對話框中將 id 列的列標(biāo)題 (HeaderText) 屬性設(shè)置為“編號”、將 name 列的列標(biāo)題 (HeaderText) 屬性設(shè)置為“專業(yè)名稱”。

????完成以上 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)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。