前沿拓展:
vb.net連接數(shù)據(jù)庫
數(shù)據(jù)庫與文本反另破文件返回數(shù)據(jù)的方法不同.如果把文本文件比作一個Textbox 的話,那么隨吸都反更數(shù)據(jù)庫更像是一個ListBox.使用文本文件時我們需要從整個Textb后,下一步我們要做的就是打開數(shù)據(jù)庫了.
先看下面的代碼,可以成功的打開數(shù)據(jù)庫.
***.open "Provider=microsoft.***.oledb.4.0;Data Sourc取e=D:\***.mdb"
這句代碼打開了D盤中的***.mdb這個數(shù)據(jù)庫.
***.open方法的第一個參數(shù)是連接代碼,它將傳遞給系統(tǒng)的數(shù)據(jù)庫引擎.前半部分"Provider=microsoft.***.oledb.4.0",它表示了數(shù)據(jù)庫的類型.不同的數(shù)據(jù)庫可能會不同.后半句"Source=d:\***.mdb"它表示了數(shù)據(jù)庫所在的絕對路徑.
打開數(shù)據(jù)庫之后,還要打開表.假如數(shù)據(jù)庫中有一個表,表名為"Users",字段有兩個,一個為用戶名,一個為密碼.那么看以下代碼.
1.想返回"Users"中,[用戶名]為"去年煙花"的[密碼]
***.open "Select 密碼 From Users Where 用戶名='去年煙花'",Connection,1,1
之后我們就可以把用戶輸入的密碼進行比較,看是否允許登錄.
If ***.eof and ***.bof then
Msgbox "用戶不存在!",16
Else
If PassWord =Recordset("密碼").value then
msgbox "登錄成功!",64
Else
msgbox "密碼錯誤!",32
End If
End If
***.close
2.假設(shè)Admin已經(jīng)成功登錄系統(tǒng),我們想把所有的用戶名和密碼都顯示出來
***.open "Select * From Users",Connection,1,1
這時,表已經(jīng)被打開,我們就用以下代碼把它顯示出來.
Do whlie Not ***.eof
Print "用戶名: " & Recordset("用戶名").value & "密碼: " & Recordset("密碼").value
***.moveNext
Loop
***.close
由以上代碼示例可以看出,打開表時,可以只打開其中的一個字段,也可以打開所有.第一個參數(shù)是SQL語句.
Select [字段名] From 表名 [Where 條件]
這里的條件可以省略.且字段名也可以用"*"來代替所有字段.
需要注意的是,如果你用(1)中的方法打開,那么(2)后面顯示的代碼就不能再用在(1)中.因為(1)里并沒有打開[用戶名]字段,所以這一句Recordset("密碼")就沒有值存在,還有可能出錯.
后面的條件,可以用"="、">"、"<"等運算符.比如 "Where ID > 32".(這里假設(shè)[ID]為數(shù)字型.)
這是打開的部分.第二個很重要的部分就是查詢記錄.
數(shù)據(jù)庫它并不是把所有記錄全部放到一個變量中備用的.而是以"當(dāng)前記錄"的形式來返回一個值.所以我們想從中找到有用的信息,就必須要對信息進行**/篩選.
**:
移動到下一條 ***.moveNext
移動到上一條 ***.movePrevious
移動到最后一條 ***.moveLast
移動到第一條 ***.moveFrist
移動到某一條 ***.move Number
篩選:
***.find "條件"
如:[用方法(2)打開表之后]
Private Sub Command1_Click()
***.find "用戶名=" & "***.text"
If ***.eof <> True Then
Msgbox "該用戶的密碼是:" & Recordset("密碼").value,64
Else
Msgbox "未找到該用戶的資料!",16
End If
End Sub
MoveNext 只有當(dāng)Eof不為True時,才可用,否則發(fā)生錯誤.而MovePrevious剛是Bof不為True時….
而只要Eof 和 Bof中有一個不為真時,也就是說只要有一條記錄時,它就可以使用.
Find 方法中的條件和Open時的第一個參數(shù)中的條件表述方法是完全一致的.當(dāng)在已打開的記錄集中,找不到該記錄時,Eof為True.找到則當(dāng)前的值就是符合條件的記錄.
第三個部分就是添加/修改記錄.
修改記錄很簡單,先按以上的方法找到相關(guān)記錄之后,給記錄賦值就可以了.
比如:[(修改密碼)按方法(1)打開表之后]
Recordset("密碼").value = "123456"
***.updata
需要注意的就是,在修改完成后,要調(diào)用Updata方法,這樣修改才能生效.
而添加記錄則可以用以下代碼來實現(xiàn):
***.addnew
Recordset("用戶名").value = "Admin"
Recordset("密碼").value = "Admin"
***.updata
這里,先要調(diào)用Addnew方法,增加一條新記錄,第二對這個新記錄中的各字段賦值,最后再調(diào)用Updata方法.
到這里就差不多了,最后說一下上面提到的幾個方法.
***.open SQL語句,數(shù)據(jù)源,游標(biāo)類型,打開方法
SQL語句不用說了,就是Select那啥的,目的就是按要求從表中返回數(shù)據(jù)
數(shù)據(jù)源就是一個打開之后的Connection對象.
去他**游標(biāo)類型,填1就可以了 [偷笑ing]
打開方法對應(yīng)了幾個常數(shù),具體哪幾個可以從對象瀏覽器里看.
對應(yīng)數(shù)值的意義:
1 只讀 2 獨占 3 可寫 4 自已可寫,別人可讀
***.open 連接代碼,服務(wù)器用戶名,密碼
這里的連接代碼就不在多說了,服務(wù)器用戶名,密碼只有在連接遠程數(shù)據(jù)庫時才用到.
本人使用的是非常精巧的VB6sp6中文版,只有6M??伤叫怕?lián)系索取或者另行下載。
它有以下優(yōu)點:
一、安裝方便,易于攜帶:從win98(如果有老古董機)到win10全面適用。不挑機器,安裝簡單。不像有些開發(fā)工具,動輒上百M甚至要安裝幾十G。如果只想做些小工具,完成office開發(fā),做些excel小工具,安裝個巨無霸,也太夸張了吧。如果同學(xué)們已經(jīng)有了VB6任何一個版本也可以用。我提供的這個版本并沒有什么特別之處,我只是喜歡它綠色精致。
二、綠色小巧,發(fā)布簡單,適用范圍更廣。發(fā)布就一個exe,不要安裝。其他很多插件或者工具都要安裝發(fā)布,自帶一大堆netframework框架、VSTO支持庫、可能還要安裝證書,選擇不同win32或者64系統(tǒng),對office excel版本也有要求………
三、無縫銜接。用vb6做個工具,取代vba,升級成本最小,無論是前面學(xué)習(xí)過**作技巧、公式應(yīng)用還是VBA開發(fā),重新?lián)QVB6開發(fā)這些經(jīng)驗都可以用上。VB6也是非常成熟的編程軟件,網(wǎng)上大量資源可以利用,請VB6用戶或者VC用戶寫個dll,寫個庫,也很容易做到。
四、VBA做的作品,總擔(dān)心源碼泄露,由于excel本身防護能力弱,網(wǎng)上破解xls或者xl**工作簿的工具一大堆,辛苦做了個工具,分分鐘就被破解。
如果普通破解被人使用也算了,可是這種破解或者叫暴破,連源碼都一起暴露了。這叫人情何堪啊。即使是使用C#/VB.net這樣高級的工具做的軟件,也擔(dān)心源碼暴露。
VB6雖然小巧,破解難度也比較高,當(dāng)然所有軟件都存在被破解的問題。即使被破解讓人**,也不擔(dān)心源碼泄露。這點是不是讓人很放心? 如果采用更高級的加密防護機制,提高破解難度,花很大的人力成本,破解這樣的工具,估計會讓破解者也頭疼,劃不來啊。
VB是完整意義的編程軟件,它可以控制office組件中excel,可以**于office存在,更可以訪問系統(tǒng)文件、網(wǎng)絡(luò)、數(shù)據(jù)庫。。。。。。
這些事如果讓VBA來做,那可太麻煩了。
所以以下VB6+excel教程,可以幫助功能**作用戶、公式用戶、VBA用戶進階升級,實現(xiàn)更多難以實現(xiàn)或不能實現(xiàn)的任務(wù)。
在VB中要想調(diào)用Excel,需要打開VB編程環(huán)境“工程”菜單中的“引用”項目,并選取項目中的“Microsoft Excel 14.0 object library”項。本人使用office2010版本。由于你的Excel版本不同,所以這個選項的版本號也是不同的。同學(xué)們隨意使用哪個版本都可以。VB6對任意版本excel都可以讀寫,excel版本之間的差異幾乎可忽略不計。
因為EXCEL是以層次結(jié)構(gòu)組織對象的,其對象模型中含有許多不同的對象元素。
第一層:Application對象,即Excel本身;
第二層:workbooks對象集,指Excel的工作簿文件;
第三層:worksheets對象集,表示的是Excel的一個工作表;
第四層:Cells和Range對象,指向Excel工作表中的單元格。
VB6可以做更華麗的界面,遠不是VBA中那個userform簡陋窗體可比。
拓展知識:
vb.net連接數(shù)據(jù)庫
VB.NET中有控件可以真接接點擊屬性進行連接配置.
SqlConnect數(shù)據(jù)連接控件.點擊ConnectionString屬性進行配置就可以了.
VB.NET中沒有RecordSet了.取而代之的是DataSet.
在VB.net中可以先用SqlConnection對像來連接數(shù)據(jù)庫再用SqlDataAdapter對像來讀取數(shù)據(jù)并填充到DataSet里.第二就可以進行數(shù)據(jù)綁定了.
例:
dim
conn
as
SqlConnection
dim
da
as
SqlDataAdapter
dim
ds
as
Dataset
set
conn
=
new
SqlConnection
conn.ConnectionString="server=serverIP;database=databasename;uid=userid;pwd=password";
conn.open
da
=
new
SqlDataAdapter
(,conn)
da.fill(ds)
原創(chuàng)文章,作者:九賢生活小編,如若轉(zhuǎn)載,請注明出處:http://xiesong.cn/12593.html