VB.net和VC#.net在功能上沒(méi)有區(qū)別。編譯以后生成的可執(zhí)行文件被稱(chēng)為Assembly,即程序集。
創(chuàng)新互聯(lián)長(zhǎng)期為千余家客戶(hù)提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開(kāi)放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為呼瑪企業(yè)提供專(zhuān)業(yè)的網(wǎng)站制作、成都網(wǎng)站建設(shè),呼瑪網(wǎng)站改版等技術(shù)服務(wù)。擁有10多年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開(kāi)發(fā)。
VB.net的版本號(hào)是Visual Basic 7.0,它的運(yùn)行是建立在CLR(Common Language Runtime)和MSIL(Microsoft Intermediate Language)虛擬器上的。其實(shí),它的機(jī)制和Java差不多。
2.vc++是Windows平臺(tái)上的C++編程環(huán)境,學(xué)習(xí)VC要了解很多Windows平臺(tái)的特性并且還要掌握MFC、ATL、COM等的知識(shí),難度比較大。Windows下編程需要了解Windows的消息機(jī)制以及回調(diào)(callback)函數(shù)的原理;MFC是Win32API的包裝類(lèi),需要理解文檔視圖類(lèi)的結(jié)構(gòu),窗口類(lèi)的結(jié)構(gòu),消息流向等等;COM是代碼共享的二進(jìn)制標(biāo)準(zhǔn),需要掌握其基本原理等等。
VC作為一個(gè)主流的開(kāi)發(fā)平臺(tái)一直深受編程愛(ài)好者的喜愛(ài),但是很多人卻對(duì)它的入門(mén)感到難于上青天,究其原因主要是大家對(duì)他錯(cuò)誤的認(rèn)識(shí)造成的,嚴(yán)格的來(lái)說(shuō)VC++不是門(mén)語(yǔ)言,雖然它和C++之間有密切的關(guān)系,如果形象點(diǎn)比喻的話(huà),可以C++看作為一種”工業(yè)標(biāo)準(zhǔn)”,而VC++則是某種操作系統(tǒng)平臺(tái)下的”廠商標(biāo)準(zhǔn)”,而”廠商標(biāo)準(zhǔn)”是在遵循”工業(yè)標(biāo)準(zhǔn)”的前提下擴(kuò)展而來(lái)的。
VC++應(yīng)用程序的開(kāi)發(fā)主要有兩種模式,一種是WIN API方式,另一種則是MFC方式,傳統(tǒng)的WIN API開(kāi)發(fā)方式比較繁瑣,而MFC則是對(duì)WIN API再次封裝,所以MFC相對(duì)于WIN API開(kāi)發(fā)更具備效率優(yōu)勢(shì),但為了對(duì)WINDOWS開(kāi)發(fā)有一個(gè)較為全面細(xì)致的認(rèn)識(shí),筆者在這里還是以講解WIN API的相關(guān)內(nèi)容為主線。
要想學(xué)習(xí)好VC必須具備良好的C/C++的基礎(chǔ),必要的英語(yǔ)閱讀能力也是必不可少的,因?yàn)榇罅康募夹g(shù)文檔多以英文形式發(fā)布。
3net是微軟推出的一個(gè)平臺(tái),微軟稱(chēng)它為:XML Web 服務(wù)平臺(tái)。它不是一種語(yǔ)言,C#是一種語(yǔ)言,在.net里面還有很多,像VB.net,C++.net,J++.net等,據(jù)說(shuō).net是微軟的一個(gè)網(wǎng)絡(luò)戰(zhàn)略。
本機(jī)上的數(shù)據(jù)庫(kù)名字和原來(lái)的不一樣,所以系統(tǒng)找不到數(shù)據(jù)庫(kù)報(bào)錯(cuò)
處理數(shù)據(jù)行(DataRow)
Windows窗體中的數(shù)據(jù)綁定列表框和組合框很節(jié)省時(shí)間 典型的代碼如下(假定已經(jīng)建立了SqlDataAdapter或者其它部件獲取數(shù)據(jù))
Dim ds As New DataSet() SqlDataAdapter Fill(ds Customers ) ListBox DataSource = ds Tables( Customers ) ListBox DisplayMember = CompanyName ListBox ValueMember = CustomerID
在這種情況下 代碼使用Northwind數(shù)據(jù)庫(kù)的顧客記錄工作 DisplayMember屬性設(shè)置為你希望用戶(hù)在列表框中看到的記錄字段 它是customers表的CompanyName 通常ValueMember屬性設(shè)置為數(shù)據(jù)表中的一個(gè)鍵字段 對(duì)于customer來(lái)說(shuō)是CustomerID 一旦用戶(hù)選擇了列表框中的一行 很容易使用列表框的SelectedValue屬性獲得鍵字段
MsgBox(ListBox SelectedValue)
但是有可能需要一個(gè)與被選擇項(xiàng)相關(guān)的整個(gè)數(shù)據(jù)行對(duì)象的引用 例如 如果被選擇的行需要被刪除 就不知道鍵了 你需要一個(gè)數(shù)據(jù)行的引用以使用Delete方法
典型的Visual Basic開(kāi)發(fā)者通常這樣想 我已經(jīng)得到了該行的鍵了 我將編寫(xiě)一些邏輯來(lái)查找使用該鍵的行 這樣可以實(shí)現(xiàn) 但是有更好的實(shí)現(xiàn)方法 可以使用一行代碼獲取與列表框中選項(xiàng)關(guān)聯(lián)的數(shù)據(jù)行
Dim dr As DataRow = CType(ListBox SelectedItem DataRowView) Row
通常該邏輯不會(huì)憑直覺(jué)出現(xiàn) 即使對(duì)經(jīng)驗(yàn)豐富的開(kāi)發(fā)者 為了解釋這是怎樣實(shí)現(xiàn)的 我把上面的一行拆成幾行 下面的代碼與上面代碼的功能相同
Dim drv As DataRowView drv = CType(ListBox SelectedItem DataRowView) Dim dr As DataRow dr = drv Row
DataRowView類(lèi)是數(shù)據(jù)行的包裝 它被多個(gè)Windows窗體控件使用 它使得顯示與控件中的數(shù)據(jù)行相關(guān)的數(shù)據(jù)更加容易 當(dāng)列表框被數(shù)據(jù)綁定到數(shù)據(jù)表時(shí)(假定列表框中的有些行當(dāng)前被選定了) 列表框的SelectedItem屬性保存了一個(gè)DataRowView對(duì)象
這意味著我們能把列表框的SelectedItem屬性轉(zhuǎn)換到DataRowView對(duì)象 這就是上面代碼中的第二行實(shí)現(xiàn)的 接著DataRowView暴露一個(gè)Row屬性 它指向被包裝的數(shù)據(jù)行 上面的代碼聲明了一個(gè)數(shù)據(jù)行并設(shè)置了Row屬性
轉(zhuǎn)換對(duì)象的類(lèi)型以訪問(wèn)它的接口的技術(shù)在Visual Basic 中不是經(jīng)常使用 但是在Visual Basic NET中這是經(jīng)常的 有了上面的例子后 大多數(shù)有經(jīng)驗(yàn)的開(kāi)發(fā)者迅速跟上了這種技術(shù)
數(shù)據(jù)行的引用(dr)可用于用任何方式維護(hù)行 訪問(wèn)數(shù)據(jù)行中的任何特定字段是可行的 行中的數(shù)據(jù)可以被改變 能使數(shù)據(jù)行的Delete方法把該行標(biāo)識(shí)為刪除 或者從數(shù)據(jù)表的行集合中刪除該行 下面的代碼標(biāo)識(shí)刪除了一行
dr Delete()
lishixinzhi/Article/program/net/201311/12974