韩剧1988免费观看全集_久久影视三级福利片_亚洲视频在线观看免费_在线观看欧美日韩_国产亚洲激情在线_亚洲精品美女久久久_欧美国产日韩一区二区在线观看_91在线观看免费高清完整版在线观看_日韩av免费看_国产又爽又黄的激情精品视频_琪琪亚洲精品午夜在线_欧美性猛xxx_不卡毛片在线看_国产亚洲日本欧美韩国_91国内在线视频_精品国产福利视频

當(dāng)前位置:蘿卜系統(tǒng)下載站 > 技術(shù)開發(fā)教程 > 詳細(xì)頁(yè)面

Windows Forms中的數(shù)據(jù)綁定(二)

Windows Forms中的數(shù)據(jù)綁定(二)

更新時(shí)間:2022-06-27 文章作者:未知 信息來(lái)源:網(wǎng)絡(luò) 閱讀次數(shù):

運(yùn)行
我們運(yùn)行這個(gè)程序來(lái)看看是否國(guó)家可以正常的顯示了。
1. 按下F5來(lái)運(yùn)行程序。
2. 點(diǎn)擊Countries下拉框來(lái)看看是否國(guó)家數(shù)據(jù)已經(jīng)可以顯示了。如果正常的話,你就可以看到如下圖8所示的程序:

圖8.使用ComboBox來(lái)顯示小數(shù)據(jù)集可以提高性能
帶參數(shù)的查詢來(lái)顯示數(shù)據(jù)
現(xiàn)在已經(jīng)可以看到ComboBox中的國(guó)家數(shù)據(jù)了,接著我們就來(lái)做選擇ComboBox中的一個(gè)國(guó)家,在DataGrid中只顯示這個(gè)國(guó)家的客戶資料。我們按照這些步驟來(lái)做:
1. 把form的load事件中讀取DataGrid中數(shù)據(jù)的代碼刪掉。
2. 修改sqlDataAdapter1的SelectCommand屬性的SQL查詢語(yǔ)句,在查詢語(yǔ)句中增加我們要使用的參數(shù)。
3. 增加代碼來(lái)處理用戶選擇國(guó)家后的事件。
刪掉form的load事件中的讀取DataGrid數(shù)據(jù)的代碼
因?yàn)镈ataGrid中的數(shù)據(jù)顯示將由ComboBox中被選擇的國(guó)家來(lái)定,我們就不再需要form的load事件中使用的代碼。把form的load事件中的下列代碼刪掉:
DsCustomers1.Clear()
SqlDataAdapter1.Fill(DsCustomers1, "Customers")
修改SelectCommand屬性
接著我們就來(lái)修改sqlDataAdapter1的SelectCommand屬性,把要使用的參數(shù)加到這個(gè)查詢中去。按照下面的步驟操作:
1. 在form的設(shè)計(jì)窗口,點(diǎn)擊sqlDataAdapter1對(duì)象。
2. 按下F4來(lái)顯示屬性窗口。
3. 點(diǎn)擊SelectCommand左邊的+號(hào)來(lái)展開SelectCommand的子屬性。
4. 點(diǎn)擊CommandText屬性,點(diǎn)擊Build(…)來(lái)顯示Query Builder對(duì)話框。
5. 在SQL查詢語(yǔ)句中增加下面的where語(yǔ)句:
SELECT CustomerID, CompanyName, ContactName, Country
FROM Customers
WHERE Country = @CountryParam
6. 點(diǎn)擊OK
7. 點(diǎn)擊sqlDataAdapter1對(duì)象
8. 點(diǎn)擊Data,點(diǎn)擊Generate DataSet,然后點(diǎn)擊OK來(lái)重新生成已有的DataSet。

圖9. 在SQL查詢語(yǔ)句中增加查詢參數(shù)
增加代碼來(lái)處理用戶選擇國(guó)家之后的事件
當(dāng)用戶選擇了國(guó)家之后,我們來(lái)添加要改變DataGrid中數(shù)據(jù)的代碼。照下面的步驟作就可以實(shí)現(xiàn)這個(gè)功能:
1. 點(diǎn)擊cboCountry的SelectedIndexChanged事件
2. 設(shè)置DataGrid的查詢參數(shù)為cboCountry中被選擇的值
3. 填充DataSet中的數(shù)據(jù)
按照以下步驟來(lái)增加代碼:
1. 打開form為設(shè)計(jì)窗口
2. 雙擊cboCountry來(lái)顯示SelectedIndexChanged事件的代碼。這個(gè)事件發(fā)生在用戶改變選擇的cboCountry值的時(shí)候。
3. 在這個(gè)事件中手寫下面的代碼:
Private Sub cboCountry_SelectedIndexChanged( _
ByVal sender As System.Object, _
ByVal e As System.EventArgs) _
Handles cboCountry.SelectedIndexChanged
' Get the Parameter object and Set value
With SqlDataAdapter1.SelectCommand.Parameters
.Item("@CountryParam").Value = _
cboCountry.SelectedValue
End With
' Clear the dataset
DsCustomers1.Clear()
' Load the dataset using the parameter value
SqlDataAdapter1.Fill(DsCustomers1, "Customers")
End Sub
我們使用sqlDataAdapter1的SelectCommand屬性來(lái)取得Parameter對(duì)象,然后把這個(gè)對(duì)象的Value屬性設(shè)為cboCountry的SelectedValue屬性。由于我們?cè)O(shè)置了cboCountry的ValueMember屬性為Country字段,因此cboCountry的SelectedValue屬性就為國(guó)家的值。設(shè)置好Value屬性后,就可以把數(shù)據(jù)填充到DataSet中了,DataGrid就自動(dòng)顯示對(duì)應(yīng)國(guó)家的客戶資料。
運(yùn)行
現(xiàn)在可以看看我們的程序究竟是怎么工作的了。
1. 按下F5來(lái)運(yùn)行程序。
2. 在ComboBox中選擇一個(gè)國(guó)家,就可以在DataGrid中看到對(duì)應(yīng)國(guó)家的客戶資料
3. 選擇不同的國(guó)家,來(lái)顯示不同國(guó)家的客戶資料
D. 使用TextBox的數(shù)據(jù)綁定
前面的例子都是使用DataGrid來(lái)顯示數(shù)據(jù),在我們的程序中,使用TextBox來(lái)顯示單獨(dú)的行數(shù)據(jù)提供編輯同樣是非常重要的。這篇文章沒(méi)有將怎樣編輯數(shù)據(jù),我們只講如何在TextBox中顯示數(shù)據(jù)。下面是主要的步驟:
1. 生成一個(gè)類似于圖10的Form
2. 生成、配置你要使用的DataSet
3. 添加控件到form中,并且把他們綁定到數(shù)據(jù)源上
4. 添加導(dǎo)航按鈕,提供一行一行瀏覽數(shù)據(jù)的功能
按照上面的幾個(gè)步驟做下來(lái),我們創(chuàng)建一個(gè)讀取Customers表的DataSet。在添加SqlDataAdapter的時(shí)候,我們選擇已有的連接到Northwind數(shù)據(jù)庫(kù)的連接,生成的SQL查詢語(yǔ)句中從Customers表中的CustomerID, CompanyName, ContactName, 和ContactTitle列。接著就可以添加控件,并且綁定數(shù)據(jù)了。

圖10. 我們使用的簡(jiǎn)單的例子窗口
添加控件到form并且綁定數(shù)據(jù)
添加控件到form中,并且設(shè)置他們的屬性為表1指定的值:
表1.用于form的控件(如圖10所示)
Control Type Property Value
Label Name Label1
Text CustomerID
TextBox Name txtCustomerID
Text Blank
Label Name Label2
Text Company Name
TextBox Name txtCompanyName
Text Blank
Label Name Label3
Text Contact Name
TextBox Name txtContactName
Text Blank
Label Name Label4
Text Contact Title
TextBox Name txtContactTitle
Text Blank
CommandButton Name btnPrevious
Text <
CommandButton Name btnNext
Text >
接著就把每一個(gè)TextBox綁定到DataSet的一列上,我們按照下面的步驟作:
1. 選擇要綁定數(shù)據(jù)的TextBox
2. 按下F4來(lái)顯示屬性窗口
3. 點(diǎn)擊展開DataBindings屬性
4. 在DataBindings屬性下,選擇Text屬性
5. 打開下拉列表把數(shù)據(jù)綁定到對(duì)應(yīng)的列上。
比如:要綁定txtCustomerID到CustomerID列上,點(diǎn)擊dsCustomers1的+號(hào),然后選擇CustomerID。
在所有的TextBox都綁定好之后,就像是在DataGrid中顯示數(shù)據(jù)那樣,我們同樣要在form的load事件中手寫代碼來(lái)導(dǎo)出數(shù)據(jù)。下面就是我們添加的代碼:
Public Sub New()
MyBase.New()
' This call is required by the
' Windows Form Designer.
InitializeComponent()
' Add any initialization
' after the InitializeComponent() call
DsCustomers1.Clear()
SqlDataAdapter1.Fill(DsCustomers1, "Customers")
End Sub
添加按鈕來(lái)實(shí)現(xiàn)一行一行的導(dǎo)航
最后一步就是添加按鈕和代碼來(lái)允許用戶實(shí)現(xiàn)一行一行的導(dǎo)航。向前導(dǎo)航的按鈕代碼如下所示:
Private Sub btnPrevious_Click _
(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles btnPrevious.Click
Me.BindingContext(DsCustomers1, _
"Customers").Position -= 1
End Sub
程序中使用BindingContext來(lái)減少數(shù)據(jù)集的記錄指針。BindingContext跟蹤form上每一個(gè)數(shù)據(jù)源的當(dāng)前項(xiàng)。向后導(dǎo)航的按鈕代碼如下:
Private Sub btnNext_Click _
(ByVal sender As Object, ByVal e As _
System.EventArgs) Handles btnNext.Click
Me.BindingContext(DsCustomers1, _
"Customers").Position += 1
End Sub
程序中使用BindingContext來(lái)增加數(shù)據(jù)集的記錄指針。我們的例子結(jié)果就如圖10所示的那樣。
注意:和DataGrid控件例子一樣,在實(shí)際的應(yīng)用中,我們同樣要減少顯示在form上的數(shù)據(jù)。比如,我們應(yīng)該在form中添加一個(gè)ComboBox,并且允許用戶選擇指定國(guó)家的客戶資料。導(dǎo)航按鈕的作用就只是在這個(gè)國(guó)家的客戶資料中實(shí)現(xiàn)。
Visual Basic 6.0中的不同點(diǎn)
Data binding with Windows Forms is far more robust than data binding in Visual Basic 6.0. With Visual Basic 6.0, you had little control over how the data was bound or what was going on underneath the covers. Using Visual Basic 6.0, when you used bound forms you added a data control and data entry controls to a form. You were basically stuck with the functionality that the data control provided. It was very difficult to troubleshoot or modify the behavior of the data control, because Microsoft did not reveal the source code behind the control to you.
Using data binding with Windows Forms and ADO.NET, you have much better control how the data is bound and how the form behaves. Data binding utilizes the ADO.NET classes and generates class code that you can view and modify. This means that when things don't work, or don't work the way that you intended them to, you are not left with your hands up in the air as you were with Visual Basic 6.0. Data binding with all its limitations in Visual Basic 6.0 was not the optimal choice for production applications; data binding with Windows Forms and ADO.NET is a viable option for the .NET developer.
/*
.NET中的數(shù)據(jù)綁定比Visual Basic 6.0中的數(shù)據(jù)綁定健壯多了。在Visual Basic 6.0中,我們能夠使用的數(shù)據(jù)綁定的控件很少,后臺(tái)的程序同樣也支持不夠。在Visual Basic 6.0中,
*/
E. 總結(jié)
數(shù)據(jù)綁定讓我們?cè)诰帉懗绦虻臅r(shí)候節(jié)省相當(dāng)多的時(shí)間。使用數(shù)據(jù)綁定就不再需要寫像在Visual Basic 6.0要的所有的綁定數(shù)據(jù)的代碼了。在這篇文章里,我們介紹了如何使用連接SQL Server數(shù)據(jù)庫(kù)的特定的對(duì)象,連接其他的數(shù)據(jù)庫(kù)同樣有相應(yīng)的對(duì)象。一般的,這些都不需要手寫太多的代碼。
在這篇文章中,我們學(xué)到了:
1. 數(shù)據(jù)綁定的基本知識(shí)
2. 如何生成數(shù)據(jù)綁定的form
3. 如何和TextBox、ComboBox、DataGrid協(xié)作
4. 如何限制顯示在DataGrid中的數(shù)據(jù)
5. 如何創(chuàng)建數(shù)據(jù)導(dǎo)航的form
6. 如何實(shí)現(xiàn)數(shù)據(jù)導(dǎo)航


溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!

本類教程下載

系統(tǒng)下載排行

網(wǎng)站地圖xml | 網(wǎng)站地圖html
国产精品久久久久国产a级| 色网站在线看| 亚洲超碰在线观看| 91成人国产精品| 亚洲第一成人在线| 欧美大片在线播放| 久久嫩草精品久久久精品一| 成年人在线播放| 日韩精品一区二区三区四区五区| 亚洲日本视频在线| **欧美大码日韩| 久久一二三四区| 久香视频在线观看| 成人av电影在线网| 久久成人精品电影| 极品视频在线| 无码人妻精品一区二区三区66| 久久精品成人| 制服丝袜中文字幕一区| www国产黄色| 天天射夜夜爽| 欧美一级淫片免费视频黄| 亚洲精品手机在线| 亚洲毛片欧洲毛片国产一品色| 两个人日本在线观看视频| 亚洲一本大道| 成人精品免费在线观看| 亚洲第一精品福利| 97超碰国产精品女人人人爽| 国产精品伦理久久久久久| 免费在线观看亚洲视频| 亚洲调教视频在线观看| 97caocao| 日韩视频国产视频| 在线人成日本视频| 三级黄色的网站| 欧美性片在线观看| 五月天婷婷在线观看视频| 天天干天天色天天| 欧美日韩aaaa| 成年网站免费| 国产精品揄拍一区二区| 黄色片视频在线免费观看| 不卡视频观看| 国产一级电影网| 91制片厂免费观看| 污污视频在线免费观看| 欧美极品中文字幕| wwwwwxxxx日本| 中文字幕在线观看二区| 老汉色影院首页| 免费看涩涩视频| 一区二区三区久久网| 亚洲色图17p| 国产精品久一| 欧美一区二区三区成人精品| 又色又爽的视频| 国内外成人激情免费视频| 男女啪啪无遮挡| 女同一区二区免费aⅴ| 欧美日韩在线免费视频| 日本最新在线视频| 一区二区三区不卡在线视频| 久久久久久久中文字幕| 在线观看视频免费一区二区三区| 欧美伦理在线视频| 亚洲精品在线网站| 日韩中文字幕1| 国产成人av影视| 亚洲aⅴ网站| 欧美电影免费播放| 人人妻人人澡人人爽久久av| 三级三级久久三级久久18| 91老司机福利 在线| 欧洲美女亚洲激情| 欧美疯狂性受xxxxx喷水图片| 在线天堂中文www视软件| 国产a久久精品一区二区三区| 黄色片在线观看免费| 亚洲一区电影在线观看| 麻豆传媒网站在线观看| 中文字幕剧情在线观看| 亚洲av无码专区在线播放中文| 你懂的免费在线观看视频网站| 91精品国产高清一区二区三区蜜臀| 激情懂色av一区av二区av| 国产在成人精品线拍偷自揄拍| 日韩网站中文字幕| 欧美高清视频看片在线观看| 蜜臀av免费一区二区三区| 91一区二区在线| 色综合男人天堂| 一本色道久久综合亚洲精品婷婷| 国产在线免费看| 精品久久不卡| 午夜精品亚洲一区二区三区嫩草| 国产精品九九九九九| koreanbj精品视频一区| 亚洲高清色综合| 欧美性感美女h网站在线观看免费| 男人的天堂avav| 国产精品探花在线| 天堂一区二区三区四区| 奇米一区二区三区av| 狠狠色伊人亚洲综合成人| 福利网在线观看| av中文网站| 国产成人一区二区三区影院在线| 日本特黄一级片| 亚洲欧美福利一区二区| 在线成人免费视频| 免费黄色国产视频| 日韩videos| 国产欧美一区二区三区不卡高清| 另类国产精品一区二区| 欧美系列一区二区| 成人av在线播放网站| 免费高清不卡av| 国产永久免费高清在线观看| 成人av色网站| 国产精品久久久久久久久影视| 久久综合一区二区| 国产精品一区二区男女羞羞无遮挡| 91小视频xxxx网站在线| 欧洲精品一区二区| 全部孕妇毛片免费孕妇| 日韩精品一区不卡| 一本色道久久综合亚洲精品婷婷| 四虎影视4hu4虎成人| 亚洲精品男人的天堂| 成人精品国产| 天天插天天操| 国产精品欧美一区二区三区奶水| 国产av一区二区三区精品| 久久久99久久| 欧美成人精品午夜一区二区| 久久久国产一区二区| 水蜜桃久久夜色精品一区| 91精品国产乱| 久久亚洲综合国产精品99麻豆精品福利| bestiality新另类大全| 亚洲福利久久| 91精品国产综合久久久久久久久| 中文字幕日韩欧美一区二区三区| 欧美剧在线观看| 在线不卡中文字幕| 中文字幕成人一区| 成人禁在线观看网站| 久久se精品一区精品二区| 精品久久中文字幕久久av| 日本久久黄色| 国产美女www| 在线观看国产小视频| 婷婷成人影院| 欧美精品videofree1080p| 欧美va日韩va| 国产成人综合在线播放| 日本欧美在线看| 天堂在线免费视频| 色呦呦网站一区| 精品欧美一区二区三区免费观看| 国产厕拍一区| 久久久久成人精品无码| 日本精品va在线观看| 中文字幕色av一区二区三区| 在线播放亚洲激情| 欧美91看片特黄aaaa| 欧美另类在线视频| 国产午夜精品美女毛片视频| 女生裸体视频一区二区三区| 日韩欧美在线免费| 日韩三级电影视频| 欧洲另类一二三四区| 蜜桃久久影院| 一区二区三区在线观看免费视频| 激情文学亚洲色图| 亚洲免费在线观看视频| 自拍偷拍一区二区三区四区| 中文字幕一区二区三区四区五区六区| 北条麻妃国产九九精品视频| 成年人在线免费| 欧洲精品一区| 欧洲黄色一区| av免费在线网站| 日韩一区二区在线视频| 青青视频在线免费观看| eeuss影院www免费影院| 中文字幕精品视频在线| 久久人妻少妇嫩草av蜜桃| 欧美肥老太太性生活| 91香蕉国产视频| 国产原创剧情av| 中文字幕视频免费观看| 色哟哟一一国产精品| h小视频在线观看网| 欧美日韩国产一区二区在线观看| 38少妇精品导航| 无遮挡又色又刺激的女人视频| 精品欧美一区免费观看α√| 久久色在线观看| 国产精品久久久久桃色tv| 欧美情侣性视频| 国产欧美日韩综合精品一区二区三区| 久久青草福利网站| 国产乱子伦精品无码码专区| 国产成人精品免费在线| 欧美一区三区四区| 亚洲少妇屁股交4| 一区不卡在线观看| 精品av一区二区| 成人动漫网站在线观看| caoporn超碰国产公开| 欧美乱大交xxxxx另类| av今日在线| 中文字幕一区二区三区不卡在线| 视频二区欧美| 最新黄色av网站| 99蜜桃在线观看免费视频网站| 美女高潮黄又色高清视频免费| 麻豆一区二区在线观看| 91伊人久久| 日本激情视频在线播放| 日韩中出av| 99在线精品视频免费观看软件| 美女视频黄久久| 国产999精品久久久久久| 日韩欧美国产精品一区二区三区| 麻豆国产传媒av福利| 一级做a爰片久久| 91午夜国产| 91精品国自产在线| 99视频精品在线| 涩涩网站在线看| 国产免费观看高清视频| 国外亚洲成av人片在线观看| 岛国爱情动作片在线| 日韩免费高清| 日韩毛片高清在线播放| 欧美三级日韩三级| 嫩草伊人久久精品少妇av杨幂| 国产免费拔擦拔擦8x在线播放| 69堂免费精品视频在线播放| xxx国产hd| 在线观看完整版免费| 午夜精品福利视频| 999免费视频| 日本美女一级片| 成人久久久精品国产乱码一区二区| 中国jizz妇女jizz妇女| 日韩网站在线看片你懂的| 在线日本制服中文欧美| 天堂一区二区在线| 日韩欧美电影在线观看| 欧美一区欧美二区| 欧美四级在线| 亚洲午夜性刺激影院| 久久精品视频免费观看| 亚洲欧美激情小说另类| 最新国产の精品合集bt伙计| 99蜜桃臀久久久欧美精品网站| 亚洲欧洲精品成人久久奇米网| 国产精品久久免费看| 欧美不卡一区| 欧洲福利电影| 婷婷亚洲一区二区三区| 日本不卡的三区四区五区| 欧美色倩网站大全免费| 国产91丝袜美女在线播放| 亚洲国产精品久久久久婷婷884| 国产精品99久久不卡二区| 欧洲精品一区| jizz内谢中国亚洲jizz| 国产日本亚洲高清| 18视频免费网址在线观看| 99久久伊人网影院| 99tv成人影院| 国产精品―色哟哟| 1024成人网| 欧美顶级毛片在线播放| 久久久久久国产精品免费播放| 国产精品成人网站| 中国免费黄视频| 国产精品灌醉下药二区| 日韩三级av| 岛国大片在线免费观看| 大黑人交xxx极品hd| 夜夜嗨av一区二区三区网站四季av| 国产精品第157页| 精品久久sese| 秋霞影院一区二区| 91麻豆国产精品久久| 欧美亚洲日本国产| 日韩网站在线| 亚洲精品亚洲人成在线观看| jizz大全欧美jizzcom| www天堂网| 亚洲成人精品电影在线观看| 丁香六月综合激情| 免费看一级视频| 少妇熟女视频一区二区三区| 亚洲天堂网站在线| 欧美日韩国产黄色| 另类激情视频| 99久久久无码国产精品免费蜜柚| 97免费公开视频| 日韩在线播放视频| 无码国产精品久久一区免费| 性欧美videos粗暴| 国产精品久久久久一区二区三区| 亚洲自拍偷拍网址| 国产性猛交普通话对白| 欧美裸身视频免费观看| 日本一区二区成人| av超碰免费在线| 国产精品毛片a∨一区二区三区| 大胆国模一区二区三区| 狠狠色henhense| 日美av在线| 91视频论坛| 日韩在线一区二区| 91精品国产亚洲| 手机在线播放av| 九热爱视频精品视频| 中文字幕亚洲欧美在线不卡| 在线免费黄网| aaa国产一区| 欧美性受xxxx黑人猛交88| 中文字幕视频三区|