使用C#語言操作ADO資料庫 (轉)
訪問是大多數應用的一部分,而且隨著和的釋出,這個過程已經變得相當的簡單.本文將展示下面四個基本的資料庫操作:
1.讀資料.這包括諸如整數,字串和日期等不同的資料型別.
2.寫資料.就象讀資料一樣我們會寫這些通常的資料型別.這是透過語句來實現的.
3.或是修改資料.我們還是使用簡單SQL語句.
4.刪除資料.使用SQL.
這些操作是對一個Access 2000資料庫進行的,但是SQL或是其它ADO資料來源可以透過簡單的改變連線字串來使用.
開始第一步
為了使用ADO類,我們需要包括進ADO.NET名稱空間(namespace)和一些精巧的日期類.在你要進行資料庫操作的地方加入下列幾行程式碼.它應該被放置在名稱空間引入程式碼行的下面而在類定義的上面.
using System.Data; // 申明變數
using System.Data.ADO; // 資料庫
using System.Globalization; // 日期
根據你所參與的工程的型別,你可能需要增加對System.Data名稱空間的引用.你可以根據在你新增上面的程式碼以後是否產生錯誤來判斷.要新增System.Data名稱空間,你可以:
1.在Solution explorer-References 分支中右鍵單擊.
2.選擇"新增引用"
3.選擇.NET 標籤.
4.雙擊System.data.dll條目
5.單擊OK
6.System.Data現在應該出現在了Solution explorer的引用列表中了.
因為連線字串在大多數操作中都要使用,所以我建議你將它設定成你要編寫的類的成員.注意:在你的程式中,資料庫的路徑有可能不同.
//屬性
public const string _CONN_STRING =
"={ Access Driver (*.mdb)}; "+
"DBQ=D:CSTestDbReadWriteSimpleTest.mdb";
讀資料
現在一切都變得有趣起來.讀資料可以透過ADODataReader類來實現.(參看Chris Maunder的文章"ADO.NET ADODataReader類"來獲取關於這個類的更多資訊.)讀資料的步驟如下:
1.我們用ADOConnection來開啟一個資料庫.
ADOConnection conn =
new ADOConnection(DB_CONN_STRING);
conn.Open();
2.我們編寫一個SQL語句來定義將要取出的資料.這個資料的結果是返回一個ADODataReader .注意Execute方法中的out關鍵字.這在C#中意味著透過引用傳遞引數.
ADODataReader dr;
ADOCommand cmd =
new ADOCommand( " * FROM Person", conn );
cmd.Execute( out dr);
3.我們迴圈遍歷ADODataReader中的每一個記錄直到我們完成要做的工作.注意:資料被直接作為一個字串返回同時資料域名稱用來指明讀的資料域.
while( dr.Read() )
{
System.Console.WriteLine( dr["FirstName"] );
}
4.我們收工
但是,作為好的程式設計師我們還需要加進許多try/catch/finally語句來確保我們處理了所有的錯誤.
try
{
.... 資料庫操作 ...
}
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
{
// 關閉連線
if( conn.State == DBState.Open )
conn.Close();
}
讀取不同的資料型別
dr["stuff"]這個語句通常能夠返回一個資料.但是要返回一個int或者DateTime物件的話通常需要進行資料轉換.這通常可以透過使用ADODataReader許多內建轉換器中的一個來實現.也就是:
int nOrdinalAge = dr.GetOrdinal( "Age" );
int nAge = dr.GetInt32( nOrdinalAge );
DateTime tUpdated = (DateTime)dr["Updated"];
注意GetOrdinal定位資料域用名字來讀取資料的用法.如果資料域是空白的(還沒有填入任何資料),上面的程式碼會丟擲一個異常.要捕捉這種情況,我們可以用IsNull方法檢查是否有資料存在,如下所示:
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語句來實現.下面的程式碼執行一條SQL命令來插入一條記錄.
// SQL 命令
String sSQLCommand =
"INSERT INTO Person (Age, FirstName, Description, Updated) " +
"VALUES( 55, ’Bob’, ’Is a Penguin’, ’2001/12/25 20:30:15’ );";
// 建立command物件
ADOCommand cmdAdder = new ADOCommand(
sSQLCommand,
DB_CONN_STRING);
cmdAdder.ActiveConnection.Open();
// Execute the SQL command
int nNoAdded = cmdAdder.ExecuteNonQuery();
System.Console.WriteLine(
"
Row(s) Added = " + nNoAdded + "
" );
注意:try/catch程式碼沒有在上面的例子裡出現,但是應該包括上面的程式碼.
插入
上面的程式碼透過建立一個SQL命令然後執行它來插入一條記錄.一些在編寫SQL命令時應注意的事項如下:
1.數值資料應該直接表示.沒有單引號(’).
2.字串的表示應該包括在單引號中(’blah’).
3.確保字串中不包含任何嵌入的單(雙)引號.這會使事情混淆.
4.日期和時間資料用包裹在單引號中的國際通用形式來表示(’YYYY/MM/DD HH:MM:SS’).
修改
UPDATE命令指明要修改的資料和修改的動作.ExecuteNonQuery()的返回值指出改變的記錄的個數,所以如果有5個Peter’s在表單中的話下面的程式碼將返回5.
String sSQLCommand =
"UPDATE Person SET Age = 27 WHERE FirstName = ’Peter’";
刪除
DELETE命令指明要刪除的記錄.ExecuteNonQuery()的返回值指出改變的記錄的個數,所以如果有2個Bobo在表單中的話下面的程式碼將返回2.兩個Bobo都會被刪除.
String sSQLCommand =
"DELETE FROM Person WHERE FirstName = ’Bobo’";
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-962641/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 資料庫操作語言DDL資料庫
- SQL資料庫操作語言DCLSQL資料庫
- 基於C#語言Oracle.ManagedDataAccess操作Oracle資料庫連線語句C#Oracle資料庫
- 資料庫學習(二)資料操作語言:資料庫
- C# 操作 access 資料庫C#資料庫
- 資料庫操作語句資料庫
- 使用 【Ado.Net】 批量插入資料
- 資料庫基本操作 術語資料庫
- 【Falsk 使用資料庫】---- 資料庫基本操作資料庫
- go 語言位操作庫 bitsetGo
- 資料庫常用操作SQL語句資料庫SQL
- 易語言連結資料庫資料庫
- 資料庫查詢語言(DQL)資料庫
- 【資料庫】優化SQL語言資料庫優化SQL
- C# 資料操作系列 - 17 Dapper ——號稱可以與ADO.NET 同臺飆車的ORMC#APPORM
- 值得白嫖的資料庫常用操作語句彙總(資料庫、資料表、資料操作)資料庫
- 使用C#連線資料庫C#資料庫
- C#快速搭建模型資料庫SQLite操作C#模型資料庫SQLite
- go語言資料型別轉換Go資料型別
- C#使用開源操作庫MiniExcel操作ExcelC#Excel
- Go語言中mysql資料庫操作(一)GoMySql資料庫
- Oracle資料庫日期格式轉換操作Oracle資料庫
- R語言連線資料庫(MySQL)R語言資料庫MySql
- 大資料教程之《MYSQL資料庫》TCL語言和DCL語言大資料MySql資料庫
- 關係型資料庫查詢語言 SQL 和圖資料庫查詢語言 nGQL 對比資料庫SQL
- EF6使用ADO.NET連線GBase8s資料庫示例資料庫
- 在.NetCore(C#)中使用ODP.NET Core+Dapper操作Oracle資料庫NetCoreC#APPOracle資料庫
- MYSQL學習筆記12: DCL資料控制語言(使用者操作)MySql筆記
- idea內建資料庫 + sql語句庫表操作Idea資料庫SQL
- 使用SSMS操作AdventureWorks 示例資料庫SSM資料庫
- DML(Data Manipulation Language、資料操作語言),用於新增、刪除、更新和查詢資料庫記資料庫
- spacejam/sled:使用Rust語言編寫的嵌入式資料庫Rust資料庫
- FAIR & NYU開發XNLI語料庫:15種語言(含低資源語言)AI
- 簡述在ADO中使用介面的抽象資料提供程式以及ADO.NET資料提供程式工廠模型抽象模型
- 資料庫原理實驗指導(三)使用SQL語言進行簡單查詢【轉載csdn】資料庫SQL
- ADO.NET入門教程之資料庫連線池資料庫
- C# 操作xml(轉)C#XML
- C#使用struct直接轉換下位機資料C#Struct
- 大語言模型與資料庫故障診斷模型資料庫