熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

Asp.Net中創建和使用Ado.net

2022-06-13   來源: .NET編程 
    在商業應用程序中最重要的組件是數據無論是在線的商務應用程序公司的企業軟件還是小型公司的會計應用程序無不如此通過一個通用的線程與數據打交道即都必須實現快速有效可靠的方式存儲檢索和處理數據
   
    然而一直一來令人棘手的問題是這些數據文件常以不同的格式存儲這就需要開發者學會用多種不同的方式來處理完全一樣的事情Microsoft等諸多數據提供者力求實現數據訪問格式的標准化
   
    從Odbc的出現到DaoRdoOledbAdo的實現可以說標准化的進程逐步實現特別是Ado的出現很好的實現了通用數據訪問的模式致使很多人認為每隔兩年學習一種新的數據訪問對象模型的年代已經過去了但是通過Internet我們發現這種想法是錯誤的
   
    一ADONET的設計目標
   
    隨著應用程序開發的發展演變新的應用程序已基於Web應用程序模型越來越松散地耦合如今越來越多的應用程序使用XML來編碼要通過網絡連接傳遞的數據Web應用程序將HTTP用作在層間進行通信的結構因此它們必須顯式處理請求之間的狀態維護這一新模型大大不同於連接緊耦合的編程風格此風格曾是客戶端/服務器時代的標志在此編程風格中連接會在程序的整個生存期中保持打開而不需要對狀態進行特殊處理
   
    設計ADONET的目的是為了滿足這一新編程模型的以下要求具有斷開式數據結構能夠與XML緊密集成具有能夠組合來自多個不同數據源的數據的通用數據表示形式在創建ADONET時Microsoft具有以下設計目標
   
    利用當前的ADO知識
   
    ADONET的設計滿足了當今應用程序開發模型的多種要求同時該編程模型盡可能地與ADO保持一致這使當今的ADO開發人員不必從頭開始學習全新的數據訪問技術
   
    ADONET是NET Framework的固有部分因此對於ADO程序員決不是完全陌生的
   
    ADONET與ADO共存雖然大多數基於NET的新應用程序將使用ADONET來編寫NET程序員仍然可以通過NET COM互操作性服務來使用ADO
   
    支持N層編程模式
   
    ADONET為斷開式n層編程環境提供了一流的支持許多新的應用程序都是為該環境編寫的使用斷開式數據集這一概念已成為編程模型中的焦點n層編程的ADONET解決方案就是DataSet
   
    集成XML支持
   
    XML和數據訪問是緊密聯系在一起的即XML的全部內容都是有關數據編碼的而數據訪問越來越多的內容都與XML有關NET Framework不僅支持Web標准它還是完全基於Web標准生成的
   
    XML支持內置在ADONET中非常基本的級別上NET Framework和ADONET中的XML類是同一結構的一部分它們在許多不同的級別集成您不必在數據訪問服務集和它們的XML相應服務之間進行選擇它們的設計本來就具有從其中一個跨越到另一個的功能
   
    二ADONET的組件
   
    設計ADONET組件的目的是為了從數據操作中分解出數據訪問ADONET的兩個核心組件會完成此任務DataSet和NET Framework數據提供程序後者是一組包括ConnectionCommandDataReader和DataAdapter對象在內的組件
   
    ADONET DataSet是ADONET的斷開式結構的核心組件DataSet的設計目的很明確為了實現獨立於任何數據源的數據訪問因此它可以用於多種不同的數據源用於XML數據或用於管理應用程序本地的數據DataSet包含一個或多個DataTable對象的集合這些對象由數據行和數據列以及主鍵外鍵約束和有關DataTable對象中數據的關系信息組成
   
    ADONET結構的另一個核心元素是NET Framework數據提供程序其組件的設計目的相當明確為了實現數據操作和對數據的快速只進只讀訪問Connection對象提供與數據源的連接Command對象使您能夠訪問用於返回數據修改數據運行存儲過程以及發送或檢索參數信息的數據庫命令DataReader從數據源中提供高性能的數據流最後DataAdapter提供連接DataSet對象和數據源的橋梁DataAdapter使用Command對象在數據源中執行SQL命令以便將數據加載到DataSet中並使對DataSet中數據的更改與數據源保持一致
   
    可以為任何數據源編寫NET Framework數據提供程序NET Framework提供了四個NET Framework數據提供程序SQL Server NET Framework 數據提供程序OLE DB NET Framework數據提供程序ODBC NET Framework 數據提供程序和 Oracle NET Framework 數據提供程序
   
    三使用ADONET連接到數據源
   
    在ADONET中可以使用Connection對象來連接到指定的數據源若要連接到Microsoft SQL Server 版或更高版本請使用SQL Server NET Framework數據提供程序的SqlConnection對象若要使用用於SQL Server的OLE DB提供程序(SQLOLEDB)連接到OLE DB數據源或者連接到Microsoft SQL Server x版或較早版本請使用OLE DB NET Framework數據提供程序的OleDbConnection對象若要連接到ODBC數據源請使用ODBC NET Framework數據提供程序的OdbcConnection對象若要連接到Oracle數據源請使用Oracle NET Framework數據提供程序的OracleConnection對象
   
    使用ADONET連接到SQL Server
   
    SQL Server NET Framework數據提供程序使用SqlConnection對象提供與Microsoft SQL Server 版或更高版本的連接
   
    SQL Server NET Framework數據提供程序支持類似於OLE DB (ADO)連接字符串格式的連接字符串格式有關有效的字符串格式名稱和值請參見附表
   
    以下代碼示例演示如何創建和打開與SQL Server(版本 或更高版本)數據庫的連接
   
    [Visual Basic] Dim myConn As SqlConnection = New SqlConnection(Data Source=localhost;Integrated Security=SSPI;Initial Catalog=northwind) myConnOpen() [C#] SqlConnection nwindConn = new SqlConnection(Data Source=localhost; Integrated Security=SSPI; + Initial Catalog=northwind nwindConnOpen()
   
    建議使用完Connection後始終將其關閉這可以使用Connection對象的Close或Dispose方法來實現
   
    集成安全性和ASPNET
   
    SQL Server集成安全性(也稱為受信任的連接)是連接到SQL Server的最安全的方法因為它不在連接字符串中公開用戶標識和密碼建議使用該方法對連接進行身份驗證


   
    集成安全性使用正在執行的進程的當前安全標識或標記對於桌面應用程序安全標識或標記通常是當前登錄的用戶的標識
   
    ASPNET應用程序的安全標識可設置為幾個不同的選項之一若要更好地了解使用集成安全性連接到SQL Server時ASPNET應用程序所使用的安全標識請參見我寫得中進行安全的ADONET編碼系列或者參考msdn
   
    Name
   
    Default
   
    Description
   
    名稱
   
    默認值
   
    說明
   
    Application Name
   
    The name of the application or Net SqlClient Data Provider if no application name is provided
   
    應用程序名稱
   
    應用程序的名稱或者Net SqlClient Data Provider(如果不提供應用程序名稱)
   
    AttachDBFilename
   
    or
   
    extended properties
   
    or
   
    Initial File Name
   
    The name of the primary file including the full path name of an attachable database
   
    The database name must be specified with the keyword database
   
    AttachDBFilename
   
   
   
    擴展屬性
   
   
   
    初始文件名
   
    可連接數據庫的主文件的名稱包括完整的路徑名
   
    必須使用關鍵字database來指定數據庫的名稱
   
    Connect Timeout
   
    or
   
    Connection Timeout
   
   
   
    The length of time (in seconds) to wait for a connection to the server before terminating the attempt and generating an error
   
    連接超時設定
   
   
   
    連接超時
   
   
   
    在終止嘗試並產生錯誤之前等待與服務器的連接的時間長度(以秒為單位)
   
    Current Language
   
    The SQL Server Language record name
   
    當前語言
   
    SQL Server 語言記錄名稱
   
    Data Source
   
    or
   
    Server
   
    or
   
    Address
   
    or
   
    Addr
   
    or
   
    Network Address
   
    The name or network address of the instance of SQL Server to which to connect
   
    數據源
   
   
   
    服務器
   
   
   
    地址
   
   
   
    Addr
   
   
   
    網絡地址
   
    要連接的 SQL Server 實例的名稱或網絡地址
   
    Encrypt
   
    false
   
    When true SQL Server uses SSL encryption for all data sent between the client and server if the server has a certificate installed Recognized values are true false yes and no
   
    加密
   
    false
   
    當該值為 true 時如果服務器端安裝了證書則 SQL Server 將對所有在客戶端和服務器之間傳送的數據使用 SSL 加密可識別的值為 truefalseyes 和 no
   
    Initial Catalog
   
    or
   
    Database
   
    The name of the database
   
    初始目錄
   
   
   
    數據庫
   
    數據庫的名稱
   
    Integrated Security
   
    or
   
    Trusted_Connection
   
    false
   
    When false User ID and Password are specified in the connection When true the current Windows account credentials are used for authentication
   
    Recognized values are true false yes no and sspi (strongly recommended) which is equivalent to true
   
    集成安全性
   
   
   
    Trusted_Connection
   
    false
   
    當為 false 時將在連接中指定用戶 ID 和密碼當為 true 時將使用當前的Windows 帳戶憑據進行身份驗證
   
    可識別的值為 truefalseyesno 以及與 true 等效的 sspi(強烈推薦)
   
    Network Library
   
    or
   
    Net
   
    dbmssocn
   
    The network library used to establish a connection to an instance of SQL Server Supported values include dbnmpntw (Named Pipes) dbmsrpcn (Multiprotocol) dbmsadsn (Apple Talk) dbmsgnet (VIA) dbmslpcn (Shared Memory) and dbmsspxn (IPX/SPX) and dbmssocn (TCP/IP)
   
    The corresponding network DLL must be installed on the system to which you connect If you do not specify a network and you use a local server (for example or (local) shared memory is used
   
    網絡庫
   
   
   
    網絡
   
    dbmssocn
   
    用於建立與 SQL Server 實例的連接的網絡庫支持的值包括 dbnmpntw(命名管道)dbmsrpcn(多協議)dbmsadsn (Apple Talk)dbmsgnet (VIA)dbmslpcn(共享內存)及 dbmsspxn (IPX/SPX) 和 dbmssocn (TCP/IP)

    
    相應的網絡 DLL 必須安裝在要連接的系統上如果不指定網絡而使用一個本地服務器(比如(local)則使用共享內存
   
    Packet Size
   
   
   
    Size in bytes of the network packets used to communicate with an instance of  SQL Server
   
    數據包大小
   
   
   
    用來與 SQL Server 的實例進行通訊的網絡數據包的大小以字節為單位
   
    Password
   
    or
   
    Pwd
   
    The password for the SQL Server account logging on (Not recommended To maintain a high level of security it is strongly recommended that you use the Integrated Security or Trusted_Connection keyword instead
   
    密碼
   
   
   
    Pwd
   
    SQL Server 帳戶登錄的密碼(建議不要使用為了維護最高級別的安全性強烈建議改用 Integrated Security 或 Trusted_Connection 關鍵字)
   
    Persist Security Info
   
    false
   
    When set to false or no (strongly recommended) securitysensitive information such as the password is not returned as part of the connection if the connection is open or has ever been in an open state Resetting the connection string resets all connection string values including the password
   
    Recognized values are true false yes and no
   
    持續安全信息
   
    false
   
    當該值設置為 false 或 no(強烈推薦)時如果連接是打開的或者一直處於打開狀態那麼安全敏感信息(如密碼)將不會作為連接的一部分返回重置連接字符串將重置包括密碼在內的所有連接字符串值可識別的值為 truefalseyes 和 no
   
    User ID
   
    The SQL Server login account (Not recommended To maintain a high level of security it is strongly recommended that you use the Integrated Security or Trusted_Connection keyword instead
   
    用戶 ID
   
    SQL Server 登錄帳戶(建議不要使用為了維護最高級別的安全性強烈建議改用Integrated Security 或 Trusted_Connection 關鍵字)
   
    Workstation ID
   
    the local computer name
   
    The name of the workstation connecting to SQL Server
   
    工作站 ID
   
    本地計算機名稱
   
    連接到 SQL Server 的工作站的名稱
   
    Name
   
    Default
   
    Description
   
    名稱
   
    默認值
   
    說明
   
    Connection Lifetime
   
   
   
    When a connection is returned to the pool its creation time is compared with the current time and the connection is destroyed if that time span (in seconds) exceeds the value specified by Connection Lifetime This is useful in clustered configurations to force load balancing between a running server and a server just brought online
   
    A value of zero () causes pooled connections to have the maximum connection timeout
   
    連接生存期
   
   
   
    當連接被返回到池時將其創建時間與當前時間作比較如果時間長度(以秒為單位)超出了由 Connection Lifetime 指定的值該連接就會被銷毀這在聚集配置中很有用(用於強制執行運行中的服務器和剛置於聯機狀態的服務器之間的負載平衡)
   
    零 () 值將使池連接具有最大的連接超時
   
    Connection Reset
   
    true
   
    Determines whether the database connection is reset when being drawn from the pool For Microsoft SQL Server version setting to false avoids making an additional server round trip when obtaining a connection but you must be aware that the connection state such as database context is not being reset
   
    連接重置
   
    true
   
    確定從池中提取數據庫連接時是否重置數據庫連接對於 Microsoft SQL Server 設置為 false 可避免獲取連接時再有一次額外的服務器往返行程但須注意此時並未重置連接狀態(如數據庫上下文)
   
    Enlist
   
    true
   
    When true the pooler automatically enlists the connection in the creation threads current transaction context Recognized values are true false yes and no
   
    登記
   
    true
   
    當該值為 true 時池程序在創建線程的當前事務上下文中自動登記連接可識別的值為truefalseyes 和 no
   
    Max Pool Size
   
   
   
    The maximum number of connections allowed in the pool
   
    最大池大小
   
   
   
    池中允許的最大連接數
   
    Min Pool Size
   
   
   
    The minimum number of connections allowed in the pool
   
    最小池大小
   
   
   
    池中允許的最小連接數
   
    Pooling
   
    true
   
    When true the SQLConnection object is drawn from the appropriate pool or if necessary is created and added to the appropriate pool Recognized values are true false yes and no
   
    池
   
    true
   
    當該值為 true 時系統將從相應池中提取 SQLConnection 對象或在必要時創建該對象並將其添加到相應池中可識別的值為 truefalseyes 和 no


From:http://tw.wingwit.com/Article/program/net/201311/11284.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.