ADO.NET 串連方式進行資料訪問

來源:互聯網
上載者:User

標籤:多個   catalog   分組   資料庫   特定   begin   效率   put   delete   

1. 串連環境簡介

1.1. 串連環境的特點
 ? 串連環境是指使用者在這種環境下始終保持與資料來源的串連
 ? 優點
  –環境易於實施安全控制
  – 同步問題易於控制
 ? 資料即時性優於其他環境
 ? 缺點
  – 必須保持持續的網路連接
  – 擴充性差

1.2. 串連環境下的物件模型
 ? XxxConnection
  – 建立與資料來源的串連,如SqlConnection 用於建立與Microsoft SQLServer? 的串連,OleDbConnection用於建立與任何支援OLEDB 的資料來源的串連
 ? XxxCommand
  – 執行資料來源的命令,如 SqlCommand 可以調用一個 Microsoft SQL Server? 的預存程序,XxxCommand 對象的ExecuteReader 方法可以
   返回一個XxxDataReader 對象
 ? XxxDataReader
  – 以唯讀、前向的方式,以流的形式讀取資料,例如SqlDataReader 可以讀取Microsoft SQL Server? 中的資料
  – XxxDataReader 由 XxxCommand(通常是SELECT命令)的 ExecuteReader 方法返回
 ? XxxXmlReader
  – 提供以快速的、無緩衝的、前向的方式讀取XML資料

1.3. 串連到資料來源

定義串連
 ? XxxConnection (如SqlConnection)
 ? 連接字串是包含資料連線參數的一個字串,用於定義對資料來源的串連
 ? 連接字串中包含的參數
 ? 連接字串的重要參數:
  – Provider 串連所用的資料提供者的種類
  – Data Source 要串連的 SQL Server 的名稱
  – Initial Catalog 要串連的資料庫的名稱
  – Integrated Security 使用Windows 驗證確定使用者權限
  – User ID/Password SQL Server登入名稱稱和密碼
  – Persist Security Info 串連後是否傳送安全資訊

1.4. 開啟和關閉串連
 ? 開啟串連
  – XxxConnection.Open()
 ? 關閉串連
  – XxxConnection.Close()
 ? 退出串連池
  – XxxConnection.Dispose()

2. 建立命令

2.1. Command 對象
 ? Command 對象是一個SQL語句或者預存程序的引用
 ? Command 對象可以直接被執行
 ? 屬性
  – Name:可選屬性,可以用於引用該對象
  – Connection:連線物件的引用,與資料庫互動
  – CommandType:Text、StoredProcedure、DirectTable 的一種
  – CommandText:SQL 陳述式或者預存程序的名字
  – Parameters :可以有零個或多個參數

2.2. Command 對象的重要方法
 ? ExecuteScalar
  –返回一個惟一的值
 ? ExecuteNonQuery
  –用於更新資料庫或改變資料庫結構,返回被影響的行數
 ? ExecuteReader
  –返回資料行的集合
 ? ExecuteXmlReader (僅限於SqlCommand)
  –返回一個 XML 的結果集

3. 返回單個值

3.1. 返回單個值
 ? 使用ExecuteScalar()方法
 ? ADO.NET 比 ADO 效率更高,返回整個記錄集
 ? 樣本
  – 一個特定產品的庫存數量
  – 有多少個產品
  –使用 COUNT、MAX、MIN、AVERAGE

3.2. DEMO
 執行返回單個值的Command 命令

4. 返回資料行

 ? 使用ExecuteReader()方法
  –返回一個 DataReader
  – 例如: SqlDataReader、OleDbDataReader
 ? DataReader
  – 唯讀、前向,資料行的流

5. 使用 DataReader 擷取資料
 ? Read 方法
  – 得到下一行
  – 如果還有後續資料行存在,返回True;反之返回False
 ? Item 屬性
  – aReader[“aColumnName”] 或aReader[columnPosition]
 ? GetXxx 方法,例如: GetString、 GetInt32
  – GetString[ColumnPosition](以基數零開始)
 ? GetValues 方法
  – 一次返回當前行所有的列,高效
 ? IsDbNull 方法
  – 用於測試是否返回NULL
 ? Close 方法
  – Read 方法返回 False 時,應該調用 Close 方法關閉 DataReader,釋放串連 

6. 返回多個結果集
 ? 一個預存程序可能包含多條 SQL 陳述式
  –將相關的任務分組
  – 封裝商務邏輯
 ? 如果一個預存程序返回了多個結果集
  – 調用NextResult 移到下一個結果集
 ? 判斷有多少資料行被一個預存程序影響
  –使用 RecordsAffected 屬性 

7. 不傳回值
 ? 使用ExecuteNonQuery()方法
 ? 執行DDL和DCL語句
  – CREATE/ALTER/DROP
  – GRANT/DENY/REVOKE
 ? 執行其它DML語句
  – INSERT/UPDATE/DELETE

8. Command 命令的參數
 ? 介紹
  – SQL 陳述式和預存程序可以有輸入輸出參數以及傳回值
  – Command對象參數用來設定或者返回這些參數
  – SqlParameter、OleDbParameter

 ? ParameterName

  – 命令參數的名稱,例如@CatId
 ? DbTtype
  – 串連到資料庫的類型,有 SqlType 和 OleDbType
 ? Direction
  – ParameterDirection 枚舉集指定的值,包括:
 ? ParameterDirection.Input(輸入)
 ? ParameterDirection.InputOutput(輸入輸出)
 ? ParameterDirection.Output(輸出)
 ? ParameterDirection.ReturnValue(傳回值)

9. 事務
 ? 事務是一系列相互關聯的任務,作為一個整體成功提交或者失敗(提交或者復原)
 ? ACID
  – Atomicity (原子):事務或者全部提交,或者全不提交
  – Consistency(一致):事務保證了資料的完整性
  – Isolation(分離):交易處理了資料操作的並發性
  – Durability(持續):即使在事務結束後發生系統崩潰等災難性情況,事務涉及的資料操作也將正常儲存

9.2. 使用 T-SQL 實現事務
 ? SQL事務語句
  – BEGIN TRAN、COMMIT TRAN、ROLLBACK TRAN
? 程式碼範例

BEGIN TRANDECLARE @orderDetailsError int, @productError intDELETE FROM "Order Details" WHERE ProductID=42SELECT @orderDetailsError = @@ERRORDELETE FROM Products WHERE ProductID=42SELECT @productError = @@ERRORIF @orderDetailsError = 0 AND @productError = 0COMMIT TRANELSEROLLBACK TRAN

 

9.3. 使用 ADO.NET 管理事務
 ? XxxConnection – 例如SqlConnection
  – BeginTransaction
 ? XxxTransaction – 例如SqlTransaction
  – Commit
  – Rollback
 ? 隔離等級

ADO.NET 串連方式進行資料訪問

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.