標題:
vb在資料庫的應用
[打印本頁]
作者:
呆呆
時間:
2011-2-15 13:20
標題:
vb在資料庫的應用
本帖最後由 呆呆 於 2011-2-15 13:40 編輯
我們無論做什麼事,都會從外部接收訊息
過濾這些訊息成為有用的資料而存於電腦中,就可以方便日後存取
但是如果資料過於龐大,就不利於日後搜尋,檢索
當然,我們也可以利用實體資料庫,利如資料書面化,但所佔用的空間非常多
查詢困難,
所以電腦的資料庫就是我們現今最常使用的儲存資料庫的工具
儲存資料有儲存資料的規則性,我們時常看到網友們在excel上做出很多
很漂亮的報表,然後要求各板主們是否能將他們的報表自動化,無論是利用excel的公式
或者是利用vba,這個其實是不符合效益的,就現今的觀點而言,報表是最終輸出,我們一定
不會只要一種報表,而這不一定只是一種報表中很多都是由同一筆資料所組成,或由該筆
資料導出結果,如果我們在excel資料表中建立各儲存格中的關連,最後一定是忘了那一個
才是真正的主資料,而且主要資料被散在各資料表中,最後管理起來一定相當不便,一個錯
就全盤都錯,我們常看到老闆們因為求快,就要求只要做什麼就好了,其實這個就是造成日後
的困擾,清查起來很困難,而且更重要的是修改困難,因此我們才會時常建議,資料儲存最好就
是用一筆一筆的,不要像報表形式,因為就算是我們不用樞紐分析表,而用的是語言開發介面工具(vba,或是vb,C#...)
這樣子程式寫起來也比較輕鬆
作者:
呆呆
時間:
2011-2-15 15:52
本帖最後由 呆呆 於 2011-2-15 16:02 編輯
excel通常有每個儲蓄格他們的格式
設定這些格式有助於速度,讓電腦事先可以知道要如何處理資料
這和程式語言中的宣告是一樣的,定義這些格式和宣告的效用是等值的
但excel的格式沒那麼的嚴謹,要定義不定義都可以,這是因為excel不是
用來當資料庫的軟體,雖然小的資料庫我常用excel(如一個專案的資料用acess就太過火了)
設定這些格式讓我們可以很容易排序,搜索,我們只要想一下就知道了
如果有一筆資料,如一個班級中所有人的姓名身高,體重,那如果A的身高和B的身高不在同一欄
等同於你還要寫程式去排,這就是浪費,而且,如果你要輸出一張卡片,A的身高體重,是要給A的
B的身高體重是要給B的,難道你真的去做二張報表,A一張,B一張,當然不是,一定是我在報表上選
A就顯示A資料,選B就是B資料
作者:
呆呆
時間:
2011-2-15 16:58
本帖最後由 呆呆 於 2011-2-15 17:08 編輯
現今的資料庫系統大多為關連式資料庫系統
當然也有非關連式的,但關連式是現今的主流
為什麼會採取關連式,最主要的原因還是要避免空間的浪費
編號 班級 姓名 體重 身高
1 六年甲班 同學甲 60 160
2 六年甲班 同學乙 55 158
3 六年甲班 同學丙 49 150
4 六年甲班 同學丁 46 152
5 六年甲班 同學戊 50 155
6 六年甲班 同學己 52 162
例如, 班級的欄位 都是六年甲班,這代表這一欄的資料重複
我們可以把他獨立出來,另做班級資料表,然後採取關連將二個資料表搭上關係
那麼只要資料一多,節省的空間就很驚人,這就是關連式資料庫的優點,而這個動作
就叫正規化(Normalized)
作者:
brewfan
時間:
2011-2-15 23:33
謝謝大大的分享,希望未來能多多指導小弟!!!
作者:
呆呆
時間:
2011-2-16 03:47
本帖最後由 呆呆 於 2011-2-16 06:17 編輯
我打開 visual basic 2008 Express 如圖,在檢視頁有資料庫總管選項
作者:
呆呆
時間:
2011-2-16 06:20
本帖最後由 呆呆 於 2011-2-16 06:21 編輯
我們在資料總管中有資料連結,在資料連結上用老鼠點右鍵會出現快顯功能表,選取加入資料連結
作者:
呆呆
時間:
2011-2-16 12:28
本帖最後由 呆呆 於 2011-2-16 12:30 編輯
出現視窗後,選擇我們要的資料庫所在位置,當然我的和別人一定會有所不同
然後可以按測試連線鈕,我採用的測是是sql sever 的北風資料庫 ,一般的資料庫demo 大都會利用這個來做
作者:
呆呆
時間:
2011-2-19 13:31
本帖最後由 呆呆 於 2011-2-19 13:36 編輯
當然這是一種連接方式
另一種是寫程式 ,我們 新增一個windowsform 專案,然後在表單上面新增二個按鈕
鍵入以下程式碼
Imports System.Data.SqlClient
Public Class Form1
Private CN As SqlConnection
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
CN = New SqlConnection
CN.ConnectionString = "Data Source =.\SQLEXPRESS;" & _
"AttachDbFilename=D:\NorthWind\NORTHWND.MDF;" & _
"Integrated Security=True;Connect Timeout=30;User Instance=True"
CN.Open()
MessageBox.Show("資料庫開啓")
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
CN.Close()
CN.Dispose()
MessageBox.Show("資料關閉")
End Sub
End Class
複製代碼
當我們要開sql資料庫時,要利用 System.Data.SqlClient名稱空間下的SqlConnection物件
這個物件開啓資料庫之前,要給他一個連線字串 ConnectionString , 我的連線字串一般不會和
其他人相同,然後我們就可以用 Open 方法來開啓
最後 資料庫用完時,別忘了要關掉,所以按鈕2就是負責關閉資料庫連線 並釋放資源
作者:
呆呆
時間:
2011-2-19 19:48
本帖最後由 呆呆 於 2011-2-19 19:50 編輯
sqlConnection有一個StateChange事件
它有一個傳遞的參數e可以告訴你所用的資料庫連線狀態
如果我們把程式碼改成如下,查看情況
Imports System.Data.SqlClient
Public Class Form1
Private CN As SqlConnection
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
CN = New SqlConnection
CN.ConnectionString = "Data Source =.\SQLEXPRESS;" & _
"AttachDbFilename=D:\NorthWind\NORTHWND.MDF;" & _
"Integrated Security=True;Connect Timeout=30;User Instance=True"
AddHandler CN.StateChange, AddressOf CNOnStateChanging
CN.Open()
MessageBox.Show("資料庫開啓")
End Sub
Private Sub CNOnStateChanging(ByVal sender As Object, ByVal e As System.Data.StateChangeEventArgs)
MessageBox.Show(e.CurrentState.ToString)
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
CN.Close()
CN.Dispose()
MessageBox.Show("資料關閉")
End Sub
End Class
複製代碼
作者:
呆呆
時間:
2011-2-20 16:18
我們已經連上資料庫了,
但我們要如何讀取,編輯資料庫上的資料呢
ado.net 給了我們一個很簡單的物件來做這件事
就是command物件
作者:
kevenpeter
時間:
2011-5-11 23:58
請教呆呆兄,如何建立資料庫,接收券商DDE Server
的報價,並將數據存入資料庫呢?
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)