欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

ASP.NET web.config中数据库连接字符串connectionStrings节的配置方法

程序员文章站 2024-03-01 13:33:58
在asp.net开发的网站根目录,有一个名为web.config的文件,顾名思义,这是为整个网站进行配置的文件,其格式为xml格式。这里主要谈谈文件中的
在asp.net开发的网站根目录,有一个名为web.config的文件,顾名思义,这是为整个网站进行配置的文件,其格式为xml格式。
这里主要谈谈文件中的<connectionstrings>节。 <connectionstrings>节是对连接到数据库的字符串进行配置,由于ms sql server与asp.net同属于微软的产品,因此是使用asp.net开发时首选的数据库是ms sql server,本文只讨论对ms sql server的连接字符串情况。
第一种情况,本地开发时,使用本地数据库,如下面的代码
复制代码 代码如下:

<connectionstrings>
    <add name="myconn"
connectionstring ="data source=(localdb) \v11.0;attachdbfilename=|datadirectory| \movies.mdf;integrated security=true" providername ="system.data.sqlclient" />
</connectionstrings>

讨论:
这是使用pc进行本地开发最常用的数据库连接字符串使用方式。其中,
name属性指的是连接字符串名称,网站中需要使用数据库时,都需要引用这个连接字符串名称;本例中为myconn;
data source属性是数据库服务器,(localdb)\v11.0说明使用本地数据库服务器,版本号为11,即sql server 2012;
attachdbfilename属性是指定具体数据为名称及位置,|datadirectory| 对应asp.net网站中的系统目录app_data,本属性值说明连接到本目录中的名为movies.mdf数据库,其中,mdf文件名说明该数据库需要sql server服务器的服务,但它本身是一个独立的数据库文件,可以进行复制粘贴而不需要在sql server管理系统(如ssms)进行数据库分离工作;
integrated security=true" 说明是集成验证,是windows验证的方式,只要有这个属性及属性值,连接字符串中就不需要用户名及密码;
providername ="system.data.sqlclient"为数据提供程序
这种情况是本地开发最常用的情况:可以直接使用asp.net创建数据库(扩展名即为.mdf),也可以使用asp.net网站配置生成aspnetdb.mdf数据库,当数据库创建完成后,在asp.net界面中创建连接字符串,只需要提供连接字符串的名称,连接字符串的其它属性及属性值可以自动在web.config文件中生成。

第二种情况,本地开发时,使用下面的连接字符串:
复制代码 代码如下:

<connectionstrings>
    <add name="myconn" connectionstring="data source=|datadirectory|mvcmusicstore.sdf"
providername="system.data.sqlserverce.4.0"/>
</connectionstrings>

说明:这里的connectionstring属性比第一种情况简单,注意这里的数据库扩展名 .sdf,这是ms sql compact版本的数据库,它不需要打开sql server的服务即可使用,精致小巧,便于使用,但支持性不如.mdf(这个是ms sql server标准版文件格式)。因此,在正常的pc机进行开发时,建议使用.mdf文件,如果在机器上没有ms sql server服务运行时,.sdf是一个不错的选择。

第三种情况,本地开发时,使用下面代码:
复制代码 代码如下:

<connectionstrings
<add name="defaultconnection"
connectionstring ="data source=(localdb)\v11.0;initial catalog=aspnet-mvcmovie-
2012213181139;integrated security=true" providername ="system.data.sqlclient" />
</connectionstrings>

说明:这里的数据库名没有扩展名,说明是由ms sql server直接管理的数据库,不是独立的数据库文件(即:如果想复制该数据库,需要在sql server管理工具中分离这个数据库)。这种连接往往是使用sql server创建数据库,再用asp.net创建连接,本地开发时,用的不是很常见。

第四种情况,远程部署时,可以看到下面的代码:
复制代码 代码如下:

<connectionstrings>
    <add name="myconn" connectionstring="data source=服务器名;initial catalog=数据库名;uid=用户id;pwd=用户密码;"/>
</connectionstrings>

说明:当需要把本地开发完成的asp.net网站部署到远程空间(比如租用空间、比如自己的服务器),开始实际提供网站访问服务时,则使用这种连接字符串。如果是租用空间,空间提供商会提供服务器名称,数据库名称,用户名及口令。注意这里没有了integrated security=true"属性名及属性值,所以需要用户名与密码。
因此,当在使用连接字符串进行本地开发(往往是本文中第一种方式)完成并测试成功后,需要根据远程服务器的数据,对连接字符串进行修改再上传至远程服务器,才能提供真正的internet访问。