SQL Server 连接字符串的使用和属性介绍

       微 软 的 SQL Server 2005 和 SQL Server 2000 在数据 库访问 上面是通用的, 关键 在于连接字符串的配置,其 实这 两种数据的 连 接串是可以通用的, 关键 是数据 库 服 务 器地址的 问题 。 SQL Server 2005 和 2000 数据 库 默 认访问 端口不一 样 。 2005 是 2317 , 2000 的是 1433 。下面四个 连 接串都可以 访问 2000 。
       1、Server=myServerAddress; Database=DatabaseName; Uid=UserName; Pwd=Password;
       2、Server=myServerAddress , 1433; Database=DatabaseName; Uid= UserName; Pwd=Password;
       3、Data Source=myServerAddress; Initial Catalog=DatabaseName; User ID=UserName; pwd=Password;
       4、Data Source=myServerAddress,1433; Initial Catalog=DatabaseName; User ID=UserName; pwd=Password;

      myServerAddress是数据库服务器地址,当您只写地址不写端口的情况下他们默认访问的是1433端口,也就是sql server 2000的数据库服务器。如果你想访问sql server 2005你就必须加上访问端口(,2317)或者在后面添加(\SQLExpress),如下面
       1、Server=myServerAddress,2317; Database=DatabaseName; Uid= UserName; Pwd=Password;
       2、Server=myServerAddress\SQLExpress; Database=DatabaseName; Uid=UserName; Pwd=Password;
       3、Data Source=myServerAddress,2317; Initial Catalog=DatabaseName; User ID=UserName; pwd=Password;
       4、Data Source=myServerAddress\SQLExpress; Initial Catalog= DatabaseName; User ID=UserName; pwd=Password;

    通过对比你就会发现,这里面的关键部分就是端口, 只要端口对了就任何问题,至于他们的访问形式和方法是完全一样,因为他们虽然不是双胞胎但也是亲兄弟,沟通方式一样,唯一的就是名字不一样。

    先看一个我在vb6中连接SQL Server 2000常用的一个连接字符串为"Provider= SQLOLEDB.1; Password=******; Persist Security Info=True; User ID=sa; Initial Catalog=master; Data Source = MyComputer"
    查了一下Provider(名词 n. 供应者;提供者;(家庭的)供养人)的意思大概是指定连接方式的版本,Provider=SQLOLEDB.1 :打开数据库用oledb的方式连接。

    下面看看在.NET中如何应用上面的连接字符串,已经详细连接字符串可选项的解释。.NET SQL Server连接字符串句法。
    在对象实例化或者建立期间,数据库连接字符串通过属性或方法被传递到必要的对象。连接字符串的格式是一个以分号为界。引用内容A中包括了一个C#中的例子,说明了怎样用创建SqlConnection对象的方法连接到SQL Server(实际的连接字符串是通过对象的ConnectionString属性分配的)。引用内容B中包括的是VB.NET的版本。

   引用内容A: 
string cString = "Data Source=server;Initial Catalog=db;User ID=test;Password=test;";
SqlConnectionconn = new SqlConnection();
conn.ConnectionString = cString;
conn.Open(); 

引用内容B:
Dim cString As String
cString = "Data Source=server;Initial Catalog=db;User ID=test;Password=test;"
Dim conn As SqlConnection = New SqlConnection()
conn.ConnectionString = cString
conn.Open()

       连接字符串会指定数据库服务器和数据库,以及访问数据库必需的用户名和密码。但是这种格式并不是对所有数据库交互都适用,它的确有许多可用的选项,其中很多选项都有同义词。和Data Source(数据源)、Initial Catalog(初始编目)、User ID(用户ID)、和Password(密码)等元素一起,还有下面这些选项都是可用的:
1.   * Application Name(应用程序名称):应用程序的名称。如果没有被指定的话,它的值为.NET SqlClient Data Provider(数据提供程序). 
2.   * AttachDBFilename/extended properties(扩展属性)/Initial File Name(初始文件名):可连接数据库的主要文件的名称,包括完整路径名称。数据库名称必须用关键字数据库指定。
3.   * Connect Timeout(连接超时)/Connection Timeout(连接超时):一个到服务器的连接在终止之前等待的时间长度(以秒计),缺省值为15。 
4.   * Connection Lifetime(连接生存时间):当一个连接被返回到连接池时,它的创建时间会与当前时间进行对比。如果这个时间跨度超过了连接的有效期的话,连接就被取消。其缺省值为0。
5.   * Connection Reset(连接重置):表示一个连接在从连接池中被移除时是否被重置。一个伪的有效在获得一个连接的时候就无需再进行一个额外的服务器来回运作,其缺省值为真。 
6.   * Current Language(当前语言):SQL Server语言记录的名称。
7.   * Data Source(数据源)/Server(服务器)/Address(地址)/Addr(地址)/Network Address(网络地址):SQL Server实例的名称或网络地址。 
8.   * Encrypt(加密):当值为真时,如果服务器安装了授权证书,SQL Server就会对所有在客户和服务器之间传输的数据使用SSL加密。被接受的值有true(真)、false(伪)、yes(是)和no(否)。 
9.   * Enlist(登记):表示连接池程序是否会自动登记创建线程的当前事务语境中的连接,其缺省值为真。 
10.  * Database(数据库)/Initial Catalog(初始编目):数据库的名称。 
11.  * Integrated Security(集成安全)/Trusted Connection(受信连接):表示Windows认证是否被用来连接数据库。它可以被设置成真、伪或者是和真对等的sspi,其缺省值为伪。 
12.  * Max Pool Size(连接池的最大容量):连接池允许的连接数的最大值,其缺省值为100。 
13.  * Min Pool Size(连接池的最小容量):连接池允许的连接数的最小值,其缺省值为0。 
14.  * Network Library(网络库)/Net(网络):用来建立到一个SQL Server实例的连接的网络库。支持的值包括: dbnmpntw (Named Pipes)、dbmsrpcn (Multiprotocol/RPC)、dbmsvinn(Banyan Vines)、dbmsspxn (IPX/SPX)和dbmssocn (TCP/IP)。协议的动态链接库必须被安装到适当的连接,其缺省值为TCP/IP。 
15.  * Packet Size(数据包大小):用来和数据库通信的网络数据包的大小。其缺省值为8192。
16.  * User ID(用户ID):用来登陆数据库的帐户名。
17.  * Password(密码)/Pwd:与帐户名相对应的密码。 
18.  * Persist Security Info(保持安全信息):用来确定一旦连接建立了以后安全信息是否可用。如果值为真的话,说明像用户名和密码这样对安全性比较敏感的数据可用,而如果值为伪则不可用。重置连接字符串将重新配置包括密码在内的所有连接字符串的值。其缺省值为伪。 
19.  * Pooling(池):确定是否使用连接池。如果值为真的话,连接就要从适当的连接池中获得,或者,如果需要的话,连接将被创建,然后被加入合适的连接池中。其缺省值为真。  
20.  * Workstation ID(工作站ID):连接到SQL Server的工作站的名称。其缺省值为本地计算机的名称。

下面是一个例子, VB.NET 2010 中中连接SQL Server 2008版本时用到的连接字符串为:Data Source=MyComputer\SQLEXPRESS; Database=master; Integrated Security= False; User ID=sa; Password=******;User Instance=False; Connect Timeout=30。以Sql身份验证模式,用名为“sa”、密码为“******”的用户信息,去登录“MyComputer \SQLEXPRESS”这台Sql服务器中的“master”数据库,连接超时设置为30秒。

     对sql连接语句中的Integrated Security=SSPI/true/false的补充解释:1、设置Integrated Security为True 的时候,连接语句前面的 UserID, PW 是不起作用的,即采用windows身份验证模式;2、只有设置为 False 或省略该项的时候,才按照 UserID, PW 来连接,即Sql身份验证模式登录数据库;3、Integrated Security=SSPI解决方法即:Security Support Provider Interface,SSPI相当于 True,建议用这个代替 True。

     Integrated Security=SSPI 这个表示以当前WINDOWS系统用户身去登录SQL SERVER服务器,如果SQL SERVER服务器不支持这种方式登录时,就会出错。

     在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。 (provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接)

     下面的连接字符串用一个受信连接和指定的登陆证书(不及管理员密码空缺安全),在Test\Dev1服务器上与Northwind数据库建立连接:引用内容: Server=Test\Dev1; Database=Northwind; User ID=sa; Password=******; Trusted_Connection=True; 

     下一个连接字符串使用了TCIP/IP 和一个指定的IP地址:引用内容: Data Source=192.162.1.100,1433; Network Library=DBMSSOCN; Initial Catalog=Northwind; User ID=sa; Password=******;

      所使用的选项可以很容易地包括在连接字符串中,但是它们还是取决于你的应用程序和它的要求。知道什么是可用的是很有好处的,这样你就可以恰当地使用它。 

      ADO.NET 2.0为每一个.NET框架的数据提供程序引进了新的连接字符串生成器。关键词作为属性被列出,使得连接字符串句法在提交到数据源之前就生效。也还有新的类可以使连接字符串在配置文件中的存储和检索变得简单,并且用受保护的方式将它们加密。 
      通过.NET应用程序连接到SQL Server为特定的连接参数和其他选项提供了多种选择。它可以像指定数据库、服务器和登录凭据那样简单,也可能像设置缓冲连接池和安全选项一样复杂。 ADO.NET 2.0的确通过数据库类使得连接字符串选项具有了更大的灵活性。你只需使用应用程序所需要的选项,不必理会其他的。而且,如果你发现自己身陷困境,记不得连接字符串句法了

转载于:https://www.cnblogs.com/bdzwater/archive/2012/06/28/2567786.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值