65.9K
CodeProject 正在变化。 阅读更多。
Home

在 Visual Studio 2005 中存储连接字符串的增强功能

starIconstarIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIcon

2.91/5 (18投票s)

2005年6月30日

3分钟阅读

viewsIcon

59004

Visual Studio 2005 中存储连接字符串的增强。

引言

本文介绍 Visual Studio 2005 中存储连接字符串的一些增强功能以及 `ConnectionStringBuilder` 的用法。 每当我们使用 ADO.NET 时,我们总是对存储连接字符串感到好奇。“我应该将连接字符串存储在哪里?” - 至少对于初学者来说,可能是一个常见问题。

在 .NET 1.x 中存储连接字符串

在 .NET Framework 1.x 中,配置文件(例如 *web.config* 文件)支持一个名为 `<appSettings>` 的部分,用于存储名称/值对。所有这些值都会填充 `AppSettings` 集合,并且可以很容易地以编程方式检索,如下所示

string connString = ConfigurationSettings.AppSettings["MyNWind"];

这是在我们的日常应用程序中存储连接字符串的常见情况。 优点是可以将连接字符串放在已编译代码之外。 这种存储连接字符串的方式也使信息对应用程序全局可用,可以很容易地从任何模块调用。 所以,我们确信没有与连接字符串相关的问题。 您可以在 `<appSettings>` 部分中存储任何可以用平面名称/值对呈现的数据。

Whidbey 中的增强功能

在 Whidbey 中,Microsoft 引入了一个 `<connectionStrings>` 部分,用于包含连接字符串(例如 SQL 连接字符串)。 该部分名为 `<connectionStrings>`。 其结构如下所示

<connectionStrings>
    <add name="EmployeeDB”
      connectionString="SERVER=…;DATABASE=…;UID=…;PWD=…;” />
    <add name="OrdersDB”
      connectionString="~\DATA\CustDB.mdb” />
</connectionStrings>

您可以使用 `<add>`、`<remove>` 和 `<clear>` 节点来操作该部分的内容。 您可以使用 `<add>` 节点添加新的连接字符串,使用 `<remove>` 节点删除以前定义的连接,使用 `<clear>` 节点重置所有连接并创建一个新集合。 通过在应用程序的每个目录中放置一个 *web.config* 文件,您可以自定义目录中的页面可见的连接字符串集合。 每个存储的连接都用一个名称标识。 该名称在整个应用程序中引用实际的连接参数。 `<connectionStrings>` 部分是连接信息的全局和集中式存储库。 以编程方式检索**连接字符串** *web.config* 文件中定义的所有连接字符串都将加载到新的配置 - `Settings.ConnectionStrings` 集合中。 如果您正在以编程方式设置 ADO.NET 对象的连接字符串,则此功能使您的代码灵活且易于维护。 例如,考虑以下 *web.config* 文件

<configuration>
    <connectionStrings>
        <add name="MyNWind”
            connectionString="SERVER=…;DATABASE=northwind;UID=…;PWD=…” />
    </connectionStrings>
</configuration>

它注册一个指向给定服务器上 Northwind 数据库并具有特定凭据的连接。 要实际打开该连接,需要以下代码

string cnStr;
cnStr = 
  ConfigurationSettings.ConnectionStrings["MyNWind"].ConnectionString;
SqlConnection cnObj = new SqlConnection(cnStr);

除此之外,我们还可以加密连接字符串。 加密是可选的,您可以通过在 *web.config* 文件中引用该部分的名称来为任何配置部分启用它。 您可以使用流行的系统工具 *aspnet_regiis.exe* 的最新版本,或者使用 ASP.NET 2.0 配置 API 编写您自己的工具。

aspnet_regiis.exe –pe connectionStrings –app /myapp

在 .NET Framework 1.x 中创建连接字符串

在 .NET Framework 1.x 中,如果我们想以编程方式编写 `connectionstring`,我们会这样做

//serverName,uid,pwd are provided from the user
public void GetData(string serverName, string uid, string pwd)
{
    String connectionString = String.Empty;
    connectionString += ("Data Source = " + serverName +";");
    connectionString += ("User ID = " + uid +";");
    connectionString += ("Password = " + pwd +";");
    SqlConnection c = new SqlConnection (connectionString);
    c.Open();
    //Do something with the connection
}

这没有编译时检查问题,甚至可能引发各种运行时问题。

ADO.NET 2.0 中的增强

ADO.NET 2.0 引入了使用 `ConnectionStringBuilder` 来构建连接字符串,这些连接字符串不易出错,而且最好的是它会进行编译时检查。

public void AccessData(string serverName, string uid, string pwd)
{
    String connectionString = String.Empty;
    //Get serverName from the user
    SqlConnectionStringBuilder conStrbuilder = 
                                        new SqlConnectionStringBuilder();
    conStrbuilder.DataSource = serverName;
    conStrbuilder.UserID = uid;
    conStrbuilder.Password = pwd;
    SqlConnection c = new SqlConnection (conStrbuilder.ConnectionString);
    c.Open();
    //Do something with the connection
}

使用 Visual Studio 2005 愉快地编程吧!

© . All rights reserved.