在商業應用程序中最重要的組件是數據
無論是在線的商務應用程序
公司的企業軟件還是小型公司的會計應用程序無不如此
通過一個通用的線程與數據打交道
即都必須實現快速
有效
可靠的方式存儲
檢索和處理數據
然而
一直一來令人棘手的問題是這些數據文件常以不同的格式存儲
這就需要開發者學會用多種不同的方式來處理完全一樣的事情
Microsoft等諸多數據提供者力求實現數據訪問格式的標准化
從Odbc的出現到Dao
Rdo
Oledb
Ado的實現
可以說標准化的進程逐步實現
特別是Ado的出現很好的實現了通用數據訪問的模式
致使很多人認為
每隔兩年學習一種新的數據訪問對象模型的年代已經過去了
但是通過Internet
我們發現這種想法是錯誤的
一
ADO
NET的設計目標
隨著應用程序開發的發展演變
新的應用程序已基於Web應用程序模型越來越松散地耦合
如今
越來越多的應用程序使用XML來編碼要通過網絡連接傳遞的數據
Web應用程序將HTTP用作在層間進行通信的結構
因此它們必須顯式處理請求之間的狀態維護
這一新模型大大不同於連接
緊耦合的編程風格
此風格曾是客戶端/服務器時代的標志
在此編程風格中
連接會在程序的整個生存期中保持打開
而不需要對狀態進行特殊處理
設計ADO
NET的目的是為了滿足這一新編程模型的以下要求
具有斷開式數據結構
能夠與XML緊密集成
具有能夠組合來自多個
不同數據源的數據的通用數據表示形式
在創建ADO
NET時
Microsoft具有以下設計目標
利用當前的ADO知識
ADO
NET的設計滿足了當今應用程序開發模型的多種要求
同時
該編程模型盡可能地與ADO保持一致
這使當今的ADO開發人員不必從頭開始學習全新的數據訪問技術
ADO
NET是
NET Framework的固有部分
因此對於ADO程序員決不是完全陌生的
ADO
NET與ADO共存
雖然大多數基於
NET的新應用程序將使用ADO
NET來編寫
但
NET程序員仍然可以通過
NET COM互操作性服務來使用ADO
支持N層編程模式
ADO
NET為斷開式n層編程環境提供了一流的支持
許多新的應用程序都是為該環境編寫的
使用斷開式數據集這一概念已成為編程模型中的焦點
n層編程的ADO
NET解決方案就是DataSet
集成XML支持
XML和數據訪問是緊密聯系在一起的
即XML的全部內容都是有關數據編碼的
而數據訪問越來越多的內容都與XML有關NET Framework不僅支持Web標准
它還是完全基於Web標准生成的
XML支持內置在ADO
NET中非常基本的級別上NET Framework和ADO
NET中的XML類是同一結構的一部分
它們在許多不同的級別集成
您不必在數據訪問服務集和它們的XML相應服務之間進行選擇
它們的設計本來就具有從其中一個跨越到另一個的功能
二
ADO
NET的組件
設計ADO
NET組件的目的是為了從數據操作中分解出數據訪問
ADO
NET的兩個核心組件會完成此任務
DataSet和
NET Framework數據提供程序
後者是一組包括Connection
Command
DataReader和DataAdapter對象在內的組件
ADO
NET DataSet是ADO
NET的斷開式結構的核心組件
DataSet的設計目的很明確
為了實現獨立於任何數據源的數據訪問
因此
它可以用於多種不同的數據源
用於XML數據
或用於管理應用程序本地的數據
DataSet包含一個或多個DataTable對象的集合
這些對象由數據行和數據列以及主鍵
外鍵
約束和有關DataTable對象中數據的關系信息組成
ADO
NET結構的另一個核心元素是
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 數據提供程序
三
使用ADO
NET連接到數據源
在ADO
NET中
可以使用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對象
使用ADO
NET連接到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
) myConn
Open() [C#] SqlConnection nwindConn = new SqlConnection(
Data Source=localhost; Integrated Security=SSPI;
+
Initial Catalog=northwind
)
nwindConn
Open()
建議使用完Connection後始終將其關閉
這可以使用Connection對象的Close或Dispose方法來實現
集成安全性和ASP
NET
SQL Server集成安全性(也稱為受信任的連接)是連接到SQL Server的最安全的方法
因為它不在連接字符串中公開用戶標識和密碼
建議使用該方法對連接進行身份驗證
集成安全性使用正在執行的進程的當前安全標識或標記
對於桌面應用程序
安全標識或標記通常是當前登錄的用戶的標識
ASP
NET應用程序的安全標識可設置為幾個不同的選項之一
若要更好地了解使用集成安全性連接到SQL Server時ASP
NET應用程序所使用的安全標識
請參見我寫得中進行安全的ADO
NET編碼系列或者參考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 加密
可識別的值為 true
false
yes 和 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 帳戶憑據進行身份驗證
可識別的值為 true
false
yes
no 以及與 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)
security
sensitive 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(強烈推薦)時
如果連接是打開的或者一直處於打開狀態
那麼安全敏感信息(如密碼)將不會作為連接的一部分返回
重置連接字符串將重置包括密碼在內的所有連接字符串值
可識別的值為 true
false
yes 和 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 thread
s current transaction context
Recognized values are true
false
yes
and no
登記
true
當該值為 true 時
池程序在創建線程的當前事務上下文中自動登記連接
可識別的值為true
false
yes 和 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 對象
或在必要時創建該對象並將其添加到相應池中
可識別的值為 true
false
yes 和 no
From:http://tw.wingwit.com/Article/program/net/201311/11284.html