0

在 C# 2008 应用程序中,我使用 linq to SQL 连接到 SQL Server 2008 数据库。现在我想从 app.config 文件中获取数据库的连接,而不是将值硬编码到应用程序中。我希望能够更改与数据库的连接字符串,因为我将把这个应用程序从单元测试数据库移动到用户接受数据库再到生产数据库。

现在我收到错误消息““对象引用未设置为对象的实例。”我知道此错误消息来自我在下面列出的代码行,因为它是我更改的唯一代码行。

以下是 *.designer.cs 文件中的代码片段(这是 dbml 文件的一部分)。

using System.Configuration;

public esampleDataContext() : 
 base(ConfigurationManager.ConnectionStrings["sample.Properties.Settings.DEVConnectionString"].ConnectionString,mappingSource)

**注意:base(global::sample.Properties.Settings.Default.DEVConnectionString, mappingSource)是我替换的由 .NET 框架生成的代码行

我想提以下几点:

  1. *.dbml 文件与特定项目文件相关联。
  2. 此 *.dbml 文件的连接字符串设置如下:
    1. DEVConnectionString(设置)
    2. 连接字符串=数据源=dev1;初始目录=DEV_test;集成安全=True
    3. 应用程序设置=真
    4. 设置属性名称是 DEVConnectionString。
  3. 具有 *.dbml 文件的项目文件。具有对 system.configuration 的引用集。

**注意:此代码在我编写的类似应用程序中,但我不知道为什么它在这里不起作用。

因此,您能否告诉我,在代码中显示我,和/或指向我可以使用的参考,以便我可以在 app.config 文件中获取我想要使用的数据库连接字符串的值。我不想对数据库使用硬编码的连接字符串。

4

1 回答 1

0

您试图从应用程序配置中的连接字符串部分而不是设置提供程序中获取值。只需在您的应用配置中添加“sample.Properties.Settings.DEVConnectionString”。

<configuration>
    <!-- ... -->
    <connectionStrings>
         <add name="sample.Properties.Settings.DEVConnectionString" connectionString="Data Source=dev1;Initial Catalog=DEV_test;Integrated Security=True"
    <connectionStrings>

    <!-- ... -->
</configuration>
于 2012-11-11T00:08:29.817 回答