第一節
一、數據庫基礎知識
數據庫的概念
數據庫是按照數據結構來組織、存儲和管理數據的倉庫。
它可以存儲大量的數據,并提供高效的數據訪問和管理功能。
數據庫的類型
關系型數據庫:如 SQL Server、MySQL、Oracle 等,以表格形式存儲數據,通過關系(如主鍵和外鍵)來關聯不同的表。
非關系型數據庫:如 MongoDB、Redis 等,采用不同的數據存儲和訪問方式,適用于特定的應用場景。
數據庫管理系統(DBMS)
是用于管理數據庫的軟件系統,負責數據庫的創建、維護、查詢處理等操作。
二、VB 與數據庫的連接方式
ADO(ActiveX Data Objects)
這是一種常用的數據庫連接技術,通過 ADO 對象模型可以方便地與各種數據庫進行交互。
DAO(Data Access Objects)
早期的 VB 數據庫訪問技術,適用于特定類型的數據庫。
三、創建數據庫連接字符串
連接 SQL Server 數據庫
例如:"Data Source=服務器名稱;Initial Catalog=數據庫名稱;User ID=用戶名;Password=密碼"
連接 Access 數據庫
例如:"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=數據庫文件路徑"
四、示例代碼:連接 SQL Server 數據庫
Imports System.Data.SqlClient
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim connectionString As String = "Data Source=YourServer;Initial Catalog=YourDatabase;User ID=YourUser;Password=YourPassword"
Using connection As New SqlConnection(connectionString)
Try
connection.Open()
MessageBox.Show("數據庫連接成功!")
Catch ex As Exception
MessageBox.Show("連接失敗: " & ex.Message)
Finally
connection.Close()
End Try
End Using
End Sub
End Class
在上述示例中:
首先定義了連接字符串,包含服務器名稱、數據庫名稱、用戶名和密碼。
使用 Using 語句創建 SqlConnection 對象,并在其中嘗試打開連接。
通過捕獲異常來處理可能的連接錯誤,并在最后關閉連接。
這就是 VB 數據庫編程第一節的基本內容,為后續的深入學習打下基礎。
第二節
一、數據控件介紹
數據控件用于在 VB 應用程序中連接和操作數據庫。常見的數據控件包括 Data 控件、ADO Data 控件(ADODC)等。
1. Data 控件
通過設置其屬性,可以將 Data 控件連接到特定的數據庫和表上。例如,可以設置 DatabaseName 屬性指定數據庫文件的路徑,設置 RecordSource 屬性指定要連接的表名。
2. ADO Data 控件(ADODC)
ADODC 控件是一種基于 ADO(ActiveX Data Objects)技術的控件,它提供了更強大和靈活的數據庫連接和操作功能。
ADODC 的主要屬性包括:
ConnectionString:通過對話框來建立連接,返回一個字符串,用于指定連接數據庫的信息,如數據源、用戶名、密碼等。
RecordSource:指定記錄集的數據源,可以是 SQL 命令、表名或存儲過程等,用于確定獲取數據的方式。
BOFAction 和 EOFAction:返回或設置當記錄集位于 BOF(文件開頭)或 EOF(文件結尾)時的動作。
CacheSize:返回或設置在緩存中的行數。
CommandTimeout:等待命令返回的時間(單位為秒),超時將出錯。
CursorLocation:光標位置,如采用服務器端光標或客戶機端光標。
CursorType:光標類型,如鍵集光標、動態光標、靜態光標等。不同的光標類型具有不同的特性,例如動態光標允許用戶看到其他用戶對記錄的修改增刪,可修改數據源;靜態光標是記錄集的拷貝與快照,用戶看不到其他用戶對記錄集的修改,且只讀。
MaxRecord:每次從數據庫中獲取的最大記錄數。
UserName 和 Password:用于連接數據庫的用戶名和密碼。
Mode:數據庫打開模式,如只讀、寫、讀寫等。
ADODC 的主要事件包括:
EndOfRecordset:當記錄集位于 EOF 或 BOF 時觸發。
WillChangeField:當一個字段將被修改前觸發。
FieldChangeComplete:當一個字段被修改后觸發。
WillChangeRecord:當一個記錄將被修改前觸發。
RecordChangeComplete:當一個記錄被修改后觸發。
WillChangeRecordset:當一個記錄集將被修改前觸發。
RecordsetChangeComplete:當一個記錄集被修改后觸發。
WillMove:一個記錄即將成為當前記錄前觸發。
MoveComplete:一個記錄成為當前記錄后觸發。
二、綁定控件
綁定控件是窗體上的對象,通過設置其 DataSource(數據源)屬性和 DataField(數據字段)屬性,可使其與數據庫進行綁定,從而顯示或操作數據庫中的數據。
例如,將文本框(TextBox)的 DataSource 屬性設置為數據控件(如 ADODC),將 DataField 屬性設置為數據庫表中的某個字段名,文本框就可以顯示該字段的數據。
要完全在代碼中使用 ADO 控件和綁定控件,需要設置 ADO 控件的 ConnectionString 屬性和 RecordSource 屬性,以及綁定控件的 DataSource 和 DataField 屬性。例如:
Private Sub Form_Load()
Adodc1.ConnectionString = "provider=microsoft.jet.oledb.4.0;datasource=d:/programfiles/vb98/biblio.mdb;persist security info=false"
Adodc1.RecordSource = "titles"
Set Text1.DataSource = Adodc1
Text1.DataField = "title"
End Sub
在上述代碼中,設置了 ADODC 控件 Adodc1 的連接字符串和記錄源,然后使用 Set 語句將文本框 Text1 的數據源設置為 Adodc1,并將其數據字段設置為 "title",這樣 Text1 就可以顯示 "titles" 表中 "title" 字段的數據。
三、數據驗證
在對數據庫進行操作時,可能需要對用戶輸入的數據進行驗證,以確保數據的有效性和完整性。例如,在 ADO 控件的 WillChangeRecord 事件中,可以編寫代碼檢查用戶輸入的數據是否符合要求,如果不符合要求,可以取消保存和更新操作。
四、SQL 語言基礎(補充)
SQL(Structured Query Language)是用于管理關系型數據庫的標準語言。除了創建表格外,還包括數據的查詢、插入、更新和刪除等操作。
例如,查詢數據的基本語法為:
SELECT column1, column2,...
FROM table_name
WHERE condition;
其中,SELECT 后面指定要查詢的列名,FROM 指定要查詢的表名,WHERE 后面是篩選條件。
插入數據使用 INSERT INTO 語句:
<