三、使用 ado.net 连接到数据源 在 ado.net 中,可以使用 connection 对象来连接到指定的数据源。若要连接到 microsoft sql server 7.0 版或更高版本,请使用 sql server .net framework 数据提供程序的 sqlconnection 对象。若要使用用于 sql server 的 ole db 提供程序 (sqloledb) 连接到 ole db 数据源或者连接到 microsoft sql server 6.x 版或较早版本,请使用 ole db .net framework 数据提供程序的 oledbconnection 对象。若要连接到 odbc 数据源,请使用 odbc .net framework 数据提供程序的 odbcconnection 对象。若要连接到 oracle 数据源,请使用 oracle .net framework 数据提供程序的 oracleconnection 对象。
1、 使用 ado.net 连接到 sql server sql server .net framework 数据提供程序使用 sqlconnection 对象提供与 microsoft sql server 7.0 版或更高版本的连接。
sql server .net framework 数据提供程序支持类似于 ole db (ado) 连接字符串格式的连接字符串格式。有关有效的字符串格式名称和值,请参见附表1
以下代码示例演示如何创建和打开与 sql server(版本 7.0 或更高版本)数据库的连接。
[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 应用程序所使用的安全标识,请参见我写得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 15 the length of time (in seconds) to wait for a connection to the server before terminating the attempt and generating an error. 连接超时设定
- 或 -
连接超时 15 在终止尝试并产生错误之前,等待与服务器的连接的时间长度(以秒为单位)。
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. 网络库
packet size 8192 size in bytes of the network packets used to communicate with an instance of sql server. 数据包大小 8192 用来与 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 0 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 (0) causes pooled connections to have the maximum connection timeout. 连接生存期 0 当连接被返回到池时,将其创建时间与当前时间作比较,如果时间长度(以秒为单位)超出了由 connection lifetime 指定的值,该连接就会被销毁。这在聚集配置中很有用(用于强制执行运行中的服务器和刚置于联机状态的服务器之间的负载平衡)。
零 (0) 值将使池连接具有最大的连接超时。
connection reset 'true' determines whether the database connection is reset when being drawn from the pool. for microsoft sql server version 7.0, 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 7.0 版,设置为 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 100 the maximum number of connections allowed in the pool. 最大池大小 100 池中允许的最大连接数。
min pool size 0 the minimum number of connections allowed in the pool. 最小池大小 0 池中允许的最小连接数。
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。