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. アプリケーション設定=True
    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 に答える