Visual C#作是微軟極力推薦的下一代程序開發語言,他有一個非常重要伴侶--.Net Framework SDK,在他的裡面封裝了許多Class Library (類庫)。Visual C#要實現很多拓展功能,就必須借助於他的這個伴侶。在Visual C#中對數據庫的處理是其功能的一個重要表現。Visual C#在進行數據庫處理的時候,經常用到.Net FrameWork SDK中的一個名稱空間 是 System.Data.Oledb。在這個名稱空間中封裝了許多和數據庫處理的相關Class(類)。本文就是通過二個具體的實例來說明在Visual C#如何實現對數據庫的訪問。
一.程序設計和運行環境是:
微軟公司視窗2000 專業版,.Net FrameWork SDK BETA 2 ,Microsoft Access Data Component 2.6 ( MADC2.6 )
二. 程序主要作用
本文中主要有二個源代碼,其一說明如何在Visual C#中對訪問數據庫,本地數據庫選擇的是微軟公司的Acess 2000;其二說明如何在Visual C#中對訪問數據庫,遠程數據庫選擇的是微軟公司的產品--SQL Server 7.0。
三.例子設計過程中的思路
(1).首先要導入名稱空間
(2).建立指向數據庫的數據連接
(3).在此數據連接上,建立一個SQL語句,用來返回所需用的數據集
(4).打開數據連接,執行SQL語句,返回所需的數據集
(5).關閉數據集,關閉數據連接
四.第一個例子first.cs -- 打開本地數據庫(my.mdb )
程序中的重要步驟:
(1).導入名稱空間空間
在本例子中要導入三個名稱空間,分別是:System、System.Data.OleDb、System.Windows.Forms。導入System名稱空間是因為程序中用到其中的Console類。導入System.Windows.Forms名稱空間是因為程序中用到其中的Application類。
(2).建立指向數據庫的連接
建立連接要用到System.Data.OleDb名稱空間中的類--OleDbConnection。通過以下語句可以完成對本地數據庫的連接工作:
string strConnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Application.StartupPath + "\\my.mdb" ; OleDbConnection aConnection = new OleDbConnection ( strConnect ) ;
其中第一句中的"Provider"是表明數據庫引擎的類型。"Data Source"是指向的數據庫名稱。
(3).在此數據連接上,建立一個SQL語句,用來返回所需用的數據集
建立SQL語句來得到數據集,要用到System.Data.OleDb名稱空間中的類--OleDbCommand。通過以下語句可完成此項工作。
OleDbConnection aConnection = new OleDbConnection ( strConnect ) ;
(4). 打開數據連接,執行SQL語句,返回所需的數據集
要完成此項操作,需用到OleDbConnection類中的Open方法,和OleDbCommand類中的ExecuteReader方法。返回的數據集要用的System.Data.OleDb名稱空間中的另一個類--OleDbDataReader。這個類就像是一個容器,提供要訪問的數據集。主要語句如下:
aConnection.Open ( ) ; OleDbDataReader aReader = aCommand.ExecuteReader ( ) ;
(5).關閉數據集,關閉數據連接
要關閉數據集要用到OleDbDataReader類中的Close方法,要關閉數據連接要用到OleDbConnection類中的Close方法。注意,最好先關閉返回的數據集,再關閉指向數據庫的連接。具體程序如下:
aReader.Close ( ) ; aConnection.Close ( ) ;
(6).在程序中,還設計了一個例外處理。在出現例外的時候,顯示錯誤信息。錯誤信息的捕獲是通過System.Data.OleDb名稱空間中的類--OleDbException來實現的。具體如下:
try { ……. } catch ( OleDbException e ) { Console.WriteLine ( "錯誤類型:", e.Errors[0].Message ) ; } first.cs 的程序源代碼如下: using System ; using System.Data.OleDb ; using System.Windows.Forms ; // 導入程序中用的的所有名稱空間 class OleDbTest { public static void Main ( ) { string strConnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Application.StartupPath + "\\my.mdb" ; OleDbConnection aConnection = new OleDbConnection ( strConnect ) ; // 建立指向數據庫的連接 OleDbCommand aCommand = new OleDbCommand ( "select * from Persons" , aConnection ) ; // 設計所需要返回的數據集的內容 try { aConnection.Open ( ) ; // 打開指向數據庫連接 OleDbDataReader aReader = aCommand.ExecuteReader ( ) ; // 返回需要的數據集內容 Console.WriteLine ( "以下就是打開後的數據集的一個字段的所有內容!" ) ; while ( aReader.Read ( ) ) { Console.WriteLine ( aReader.GetString (0) ) ; } // 屏幕輸出數據集的第一個字段的所有內容,如果要第二個字段把"0"改為"1" aReader.Close ( ) ; // 關閉數據集 aConnection.Close ( ) ; // 關閉指向數據庫的連接 } catch ( OleDbException e ) { Console.WriteLine ( "錯誤類型:", e.Errors[0].Message ) ; // 如果出錯,輸出錯誤信息 } } }