資源描述:
《c#中動態(tài)操作數(shù)據(jù)庫》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、VisualC#中動態(tài)操作SQLServer數(shù)據(jù)庫2006-09-2218:33出處:天極網(wǎng)作者:X【網(wǎng)友評論0條?發(fā)言】 在編寫數(shù)據(jù)庫應(yīng)用程序的時候,我們可以通過SQL語句來動態(tài)創(chuàng)建、修改數(shù)據(jù)庫以及其中的對象。本文我就向大家介紹如何運用VisualC#來動態(tài)操作SQLServer數(shù)據(jù)庫,其中包括如何創(chuàng)建一個SQLServer數(shù)據(jù)庫以及如何創(chuàng)建其中的表、存儲過程、視圖、索引之類的數(shù)據(jù)庫對象。本文還介紹了如何動態(tài)地修改表的模式,如何從表、存儲過程以及視圖中讀取數(shù)據(jù)并顯示在應(yīng)用程序的數(shù)據(jù)庫控件中?! ∥覀冎繱QL語句在操作數(shù)據(jù)庫時運用得最多的是Select、Insert、Updat
2、e和Delete等對于數(shù)據(jù)的操作,而本文重點向大家介紹的是對于數(shù)據(jù)庫及其對象的操作。通過掌握這些基本的操作方法,讀者就可以更加靈活地進行數(shù)據(jù)庫應(yīng)用程序的開發(fā)?! ¢_發(fā)實例及步驟 1.界面設(shè)計: 本文向大家介紹一個運用VisualC#動態(tài)操作數(shù)據(jù)庫的實例,實例的界面如圖1所示?! D1 從上圖可知,我們的實例程序只包含了10個按鈕控件以及一個DataGrid控件。按鈕控件分為三類: 第一類為創(chuàng)建數(shù)據(jù)庫以及數(shù)據(jù)庫對象的按鈕; 第二類為查看不同數(shù)據(jù)庫對象中的數(shù)據(jù)的按鈕; 第三類則為修改數(shù)據(jù)庫對象的按鈕。其中的DataGrid控件則是用于顯示數(shù)據(jù)的?! ?.添加引用及數(shù)據(jù)成
3、員: 設(shè)計完界面,我們就可以開始編寫程序代碼。首先是為我們的程序添加必要的引用以及一些數(shù)據(jù)成員。因為我們的程序涉及到數(shù)據(jù)庫的訪問操作,所以必須要運用到數(shù)據(jù)提供者(DataProvider)的對象。在.Net框架下,我們主要運用的數(shù)據(jù)提供者分為兩類,一類是Sql類型的,另一類是OleDb類型的。它們涉及到的命名空間分別為System.Data.SqlClient和System.Data.OleDb。因為我們的程序訪問的是SQLServer數(shù)據(jù)庫,所以我們運用的數(shù)據(jù)提供者對象應(yīng)為Sql類型的。原因很簡單,該類型的對象是專門為SQLServer數(shù)據(jù)庫而設(shè)計的,所以性能得到了大大的優(yōu)化。
4、所以,在我們的程序的開始處添加如下一句語句: usingSystem.Data.SqlClient; 添加對System.Data.SqlClient命名空間的引用后,我們接下來為程序添加一些必要的數(shù)據(jù)成員,這些數(shù)據(jù)成員為我們的類的私有成員,通過它們我們可以完成一些對數(shù)據(jù)庫及其對象的操作?! rivatestringConnectionString="Integrated Security=SSPI;InitialCatalog=;DataSource=localhost;"; privateSqlConnectionconn=null; privateSqlComma
5、ndcmd=null; privatestringsql=null; 至于各個數(shù)據(jù)成員的意義,我想大家一看就應(yīng)該會明白了,所以這里就不多說了。 3.處理數(shù)據(jù)庫連接對象: 對于數(shù)據(jù)庫應(yīng)用程序而言,連接到相應(yīng)的數(shù)據(jù)庫是一個必不可少的步驟,我們的程序也不例外。所以在我們的程序的構(gòu)造函數(shù)中得先創(chuàng)建一個數(shù)據(jù)庫連接對象,方法如下: publicForm1() { // //?Windows?窗體設(shè)計器支持所必需的 // InitializeComponent(); //創(chuàng)建一個連接 conn=newSqlConnection(ConnectionString); }
6、 這樣,我們在以后的對于數(shù)據(jù)庫的操作中就可以運用該數(shù)據(jù)庫連接對象了?! 《瑫r,在我們的程序結(jié)束時,我們有必要關(guān)閉該數(shù)據(jù)庫連接對象,否則可能會引發(fā)一些意想不到的錯誤。所以得在程序的已重載的Dispose函數(shù)中添加關(guān)閉數(shù)據(jù)庫連接對象的語句,不過由于.Net框架具有自動垃圾回收(GarbageCollection)功能,所以我們不必像在C++語言中那樣顯式的將該對象銷毀。具體方法如下: protectedoverridevoidDispose(booldisposing) { //程序運行完畢,確保數(shù)據(jù)庫連接已經(jīng)關(guān)閉 if(conn.State==ConnectionState
7、.Open) conn.Close(); if(disposing) { if(components!=null) { components.Dispose(); } } base.Dispose(disposing); } 4.創(chuàng)建SQLServer數(shù)據(jù)庫: 在創(chuàng)建了數(shù)據(jù)庫連接對象后,我們就可以在程序中運用它了。首先,我們在程序中動態(tài)地創(chuàng)建一個SQLServer類型的數(shù)據(jù)庫。我們將數(shù)據(jù)庫創(chuàng)建在C:mysql目錄下,所以讀者要練習(xí)該實例的話得