人人做人人澡人人爽欧美,国产主播一区二区,久久久精品五月天,羞羞视频在线观看免费

當(dāng)前位置:蘿卜系統(tǒng)下載站 > 技術(shù)開發(fā)教程 > 詳細(xì)頁面

運用C#語言設(shè)置ADO數(shù)據(jù)庫

運用C#語言設(shè)置ADO數(shù)據(jù)庫

更新時間:2022-06-29 文章作者:未知 信息來源:網(wǎng)絡(luò) 閱讀次數(shù):

訪問數(shù)據(jù)庫是大多數(shù)應(yīng)用程序的一部分,而且隨著C#和ADO.NET的發(fā)布,這個過程已經(jīng)變得相當(dāng)?shù)暮唵?本文將展示下面四個基本的數(shù)據(jù)庫操作:

1.讀數(shù)據(jù).這包括諸如整數(shù),字符串和日期等不同的數(shù)據(jù)類型.
2.寫數(shù)據(jù).就象讀數(shù)據(jù)一樣我們會寫這些通常的數(shù)據(jù)類型.這是通過SQL語句來實現(xiàn)的.
3.更新或是修改數(shù)據(jù).我們還是使用簡單SQL語句.
4.刪除數(shù)據(jù).使用SQL.


這些操作是對一個微軟Access 2000數(shù)據(jù)庫進(jìn)行的,但是SQL或是其它ADO數(shù)據(jù)源可以通過簡單的改變連接字符串來使用.

開始第一步
為了使用ADO類,我們需要包括進(jìn)ADO.NET命名空間(namespace)和一些精巧的日期類.在你要進(jìn)行數(shù)據(jù)庫操作的地方加入下列幾行代碼.它應(yīng)該被放置在命名空間引入代碼行的下面而在類定義的上面.

using System.Data; // 申明變量
using System.Data.ADO; // 數(shù)據(jù)庫
using System.Globalization; // 日期

根據(jù)你所參與的工程的類型,你可能需要增加對System.Data命名空間的引用.你可以根據(jù)在你添加上面的代碼以后編譯器是否產(chǎn)生錯誤來判斷.要添加System.Data命名空間,你可以:
1.在Solution explorer-References 分支中右鍵單擊.
2.選擇"添加引用"
3.選擇.NET Framework標(biāo)簽.
4.雙擊System.data.dll條目
5.單擊OK
6.System.Data現(xiàn)在應(yīng)該出現(xiàn)在了Solution explorer的引用列表中了.

因為連接字符串在大多數(shù)操作中都要使用,所以我建議你將它設(shè)置成你要編寫的類的成員.注意:在你的程序中,數(shù)據(jù)庫文件的路徑有可能不同.

//屬性
public const string DB_CONN_STRING =
"Driver={Microsoft Access Driver (*.mdb)}; "+
"DBQ=D:\\CS\\TestDbReadWrite\\SimpleTest.mdb";


讀數(shù)據(jù)
現(xiàn)在一切都變得有趣起來.讀數(shù)據(jù)可以通過ADODataReader類來實現(xiàn).(參看Chris Maunder的文章"ADO.NET ADODataReader類"來獲取關(guān)于這個類的更多信息.)讀數(shù)據(jù)的步驟如下:

1.我們用ADOConnection來打開一個數(shù)據(jù)庫.
ADOConnection conn =
new ADOConnection(DB_CONN_STRING);
conn.Open();
2.我們編寫一個SQL語句來定義將要取出的數(shù)據(jù).這個數(shù)據(jù)執(zhí)行的結(jié)果是返回一個ADODataReader 對象.注意Execute方法中的out關(guān)鍵字.這在C#中意味著通過引用傳遞參數(shù).

ADODataReader dr;
ADOCommand cmd =
new ADOCommand( "SELECT * FROM Person", conn );
cmd.Execute( out dr);

3.我們循環(huán)遍歷ADODataReader中的每一個記錄直到我們完成要做的工作.注意:數(shù)據(jù)被直接作為一個字符串返回同時數(shù)據(jù)域名稱用來指明讀的數(shù)據(jù)域.
while( dr.Read() )
{
System.Console.WriteLine( dr["FirstName"] );
}
4.我們收工
但是,作為好的程序員我們還需要加進(jìn)許多try/catch/finally語句來確保我們處理了所有的錯誤.
try
{
.... 數(shù)據(jù)庫操作 ...
}
catch( Exception ex )
{
System.Console.WriteLine( "READING:" );
System.Console.WriteLine( " ERROR:" + ex.Message );
System.Console.WriteLine( " SQL :" + sSqlCmd );
System.Console.WriteLine( " Conn.:" + DB_CONN_STRING );
}
finally
{
// 關(guān)閉連接
if( conn.State == DBObjectState.Open )
conn.Close();
}


讀取不同的數(shù)據(jù)類型
dr["stuff"]這個語句通常能夠返回一個數(shù)據(jù).但是要返回一個int或者DateTime對象的話通常需要進(jìn)行數(shù)據(jù)轉(zhuǎn)換.這通常可以通過使用ADODataReader許多內(nèi)建轉(zhuǎn)換器中的一個來實現(xiàn).也就是:

int nOrdinalAge = dr.GetOrdinal( "Age" );
int nAge = dr.GetInt32( nOrdinalAge );

DateTime tUpdated = (DateTime)dr["Updated"];

注意GetOrdinal定位數(shù)據(jù)域用名字來讀取數(shù)據(jù)的用法.如果數(shù)據(jù)域是空白的(還沒有填入任何數(shù)據(jù)),上面的代碼會拋出一個異常.要捕捉這種情況,我們可以用IsNull方法檢查是否有數(shù)據(jù)存在,如下所示:

int nOrdinalAge = dr.GetOrdinal( "Age" );
if( dr.IsNull( nOrdinalAge ) )
{
System.Console.WriteLine( " Age : Not given!" );
}
else
{
int nAge = dr.GetInt32( nOrdinalAge );
System.Console.WriteLine( " Age : " + nAge );
}


插入,修改,刪除和其他SQL命令
插入,修改,刪除過程可以非常容易的通過SQL語句來實現(xiàn).下面的代碼執(zhí)行一條SQL命令來插入一條記錄.

// SQL 命令
String sSQLCommand =
"INSERT INTO Person (Age, FirstName, Description, Updated) " +
"VALUES( 55, 'Bob', 'Is a Penguin', '2001/12/25 20:30:15' );";
// 創(chuàng)建command對象
ADOCommand cmdAdder = new ADOCommand(
sSQLCommand,
DB_CONN_STRING);
cmdAdder.ActiveConnection.Open();
// Execute the SQL command
int nNoAdded = cmdAdder.ExecuteNonQuery();
System.Console.WriteLine(
"\nRow(s) Added = " + nNoAdded + "\n" );

注意:try/catch代碼沒有在上面的例子里出現(xiàn),但是應(yīng)該包括上面的代碼.

插入
上面的代碼通過建立一個SQL命令然后執(zhí)行它來插入一條記錄.一些在編寫SQL命令時應(yīng)注意的事項如下:
1.數(shù)值數(shù)據(jù)應(yīng)該直接表示.沒有單引號(').
2.字符串的表示應(yīng)該包括在單引號中('blah').
3.確保字符串中不包含任何嵌入的單(雙)引號.這會使事情混淆.
4.日期和時間數(shù)據(jù)用包裹在單引號中的國際通用形式來表示('YYYY/MM/DD HH:MM:SS').

修改

UPDATE命令指明要修改的數(shù)據(jù)和修改的動作.ExecuteNonQuery()的返回值指出改變的記錄的個數(shù),所以如果有5個Peter's在表單中的話下面的代碼將返回5.
String sSQLCommand =
"UPDATE Person SET Age = 27 WHERE FirstName = 'Peter'";

刪除
DELETE命令指明要刪除的記錄.ExecuteNonQuery()的返回值指出改變的記錄的個數(shù),所以如果有2個Bobo在表單中的話下面的代碼將返回2.兩個Bobo都會被刪除.

String sSQLCommand =
"DELETE FROM Person WHERE FirstName = 'Bobo'";

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統(tǒng)下載排行

網(wǎng)站地圖xml | 網(wǎng)站地圖html
主站蜘蛛池模板: 剑阁县| 五指山市| 独山县| 中牟县| 四子王旗| 衡山县| 安西县| 深水埗区| 淳安县| 福鼎市| 肥东县| 库伦旗| 扶风县| 广河县| 丹棱县| 湘乡市| 汤原县| 双流县| 民县| 商南县| 长葛市| 永平县| 凤阳县| 美姑县| 怀远县| 鹤岗市| 台中县| 福安市| 绍兴县| 武山县| 昌江| 北票市| 鸡东县| 顺平县| 三门县| 沙湾县| 青海省| 顺义区| 安多县| 余干县| 四子王旗|