.net教學筆記整理 [資料庫篇]



連接資料庫的方法
  • 視覺方式,使用設計階段工具。
  • 程式設計方式。


基本概念:
  • ADO.NET 
    • ADO.NET 可讓您以一致的方式存取資料來源 (如 Microsoft SQL Server 與 XML),以及透過 OLE DB 和 ODBC 所公開的資料來源。資料共用的消費者應用程式可使用 ADO.NET 連接至這些資料來源並擷取、操作及更新其中所含的資料。
    • 元件:
      • .NET Framework 資料提供者
      • DataSet
    • 架構資料提供者圖形
  • 在.NET中, 我們使用System.Data這個namespace為存取資料的主要方法。
  • 當存取任何形態的外部資料, 程式一定包含下列物件:
    • Connection物件
    • Command物件
    • 資料載體
  • 資料載體包括
    • DataReader
      • 能從資料庫擷取順向唯讀資料流資料。
      • 好處是提高應用程式的效能,方法是立即擷取可用的資料,及 (依預設) 一次只將一個資料列儲存到記憶體中,從而減少系統負荷。
    • DataAdapter
      • 表示 SQL 命令集和資料庫連接,用來填入 DataSet 並更新資料來源。
      • 是 DataSet 和資料來源之間的橋接器 (Bridge) ,用來擷取和儲存資料。
    • DataSet
      • 種離線運作的資料庫快取,存放在主機的記憶體裡面。DataSet是透過DataAdapter(資料配接器)來執行SQL指令,功能非常強大,幾乎就是資料庫的翻版(如:DataView、DataTable、Relationship等等都作得到)。可以把資料庫複製到主機的記憶體裡面,如此一來面對關係複雜的多重資料表,就能快速地處理。缺點是:使用DataSet比較消耗資源。[2]
      • DataSet 由 DataTable 物件的集合所組成.
      • 內部是用XML來描述數據的。
    • DataTable
      • DataSet內的元素。一個DataSet 可由一至多組 DataTable物件組成。
  • DataSet, DataReader比較如下[2]
    (資料來源,以MS SQL Server為例)
    ADO.NET兩大物件的比較
    DataSet
    DataReader
    連接資料庫(Connection
    (不需要,因為SqlDataAdapter會自動開啟連結,使用後自動關閉)

    SqlConnection.Open()
    執行SQL指令
    1. Select
    2. Delete/Update/Insert
    SqlDataAdapter
    1.      .Fill()方法
    2.      .Update()方法
    SqlCommand
    1.  .ExecuteReader()方法
    2.  .ExecuteNonQuery()方法
    資料指標
     移動
    DataSet類似資料庫行為的資料快取。這些資料將存放在記憶體裡面,所以可以自由靈活地操作內部資料。
    讀取資料時,只能「唯讀、順向(Forward)」的動作。
    如何處理資料庫
     資料表?
    可以處理複雜的資料庫關聯與多個DataTableDataView
    透過使用者自訂的SQL指令來存取。
    適合處理單一的資料表。
    消耗資源
    較大
    小,而且快速
    分頁功能
    Paging



[程式設計] 連結資料基本Steps(以連結SQL Server為例):


  1. 建立SqlConnection.
  2. 建立SqlCommand
  3. 把資料放入載體(如datareader)
  • 流程如下圖所示[3]
  • 例子


[程式設計] 連結Oracle資料庫 [4]
  1. 在 [伺服器總管] 中,以滑鼠右鍵按一下 [資料連接],再按一下 [加入資料連接]。
  2. 在 [資料提供者] 中,按一下 [.NET Framework Data Provider for OLE DB] ,然後資料來源選擇 [Oracle資料庫],按一下[確定]。
  3. 鍵入您要存取的資料庫所在的伺服器位置。
  4. 在登入至資料來源時,鍵入要用於驗證的密碼。
  5. 請按一下 [確定]。

參考資料:
1. http://msdn.microsoft.com/zh-tw/library/ms254509(v=vs.80).aspx msdn台灣
2. http://www.dotblogs.com.tw/mis2000lab/archive/2008/08/15/4919.aspx MIS2000 Lab.的 ASP.NET 4.0 專題實務/教學與分享 (Official Site)

3. moodle.ncnu.edu.tw/mod/resource/view.php?id=96526 C#與資料庫連線與存取

4. http://msdn.microsoft.com/zh-tw/library/cc437980(v=vs.71).aspx 建立到Oracle資料庫的連接


持續更新中....

Popular posts from this blog

[SQL SERVER] 找出LOCK方法懶人包

[SQL Server] 解決log檔(ldf file)過度膨脹的實戰經驗

[Windows7] 跨距磁碟區, 等量磁碟區, 鏡像磁碟區之區別