
前提
VisualStadio2022のC#で書いたプログラムからSQLServerに接続するためにApp.configを使用する。
App.configファイルの作成・入手について
Visual Studioのソリューションエクスプローラでプロジェクトを右クリックして、ポップアップメニューを表示させます。メニューの「追加」-「新しい項目の追加」を選んだが、「アプリケーション構成ファイル」が出なかったので、
https://dobon.net/vb/dotnet/programing/appconfigfile.html
を参考に
1.メモ帳などアプリケーションで作った。「App.config」という名前のファイルを作成
または
2.配布された「sample.config」を入手し、「App.config」変えたものを作成
→特に配布されたファイル「sample.config」を入手したことについては確定である。
そのファイルをプロジェクトに追加し(ソリューションエクスプローラへのドラッグ&ドロップ等で追加)、そのファイルをVisual Studioで開く
実現したいこと
C#を使用して、SQLSeverに接続したいです。
発生している問題・エラーメッセージ
C#
1 string test = ConfigurationManager.ConnectionStrings["DB"].ConnectionString;
接続文字列の取得のコードでエラーがでてくる
System.NullReferenceException
HResult=0x80004003
Message=Object reference not set to an instance of an object.
該当のソースコード
C#
1using System.Configuration; 2 3public string GetConnectionString() 4 { 5 //接続文字列の取得(SQL Serverへの接続する情報の取得) 6 string test = ConfigurationManager.ConnectionStrings["DB"].ConnectionString; 7 8 return ConfigurationManager.ConnectionStrings["DB"].ConnectionString; 9 } 10
App.config
<?xml version="1.0" encoding="utf-8" ?> <configuration> <connectionStrings> <add name="DB" connectionString="Data Source = (localdb)\mssqllocaldb; Initial Catalog = TestDatabase; Integrated Security = True" providerName="System.Data.SqlClient" /> </connectionStrings> </configuration>
###エラーについて確かめたこと・問題解決のために試したこと
1.「App.config」が接続できているか確かめるために
接続文字列以外のパラメータである<appSettings>を作成し、実装できるか確認を行う。
デバッグでc#変数conで指定したキーの値を取得で見つからないときはnullを返ってきた。
<appSettings> <add key="ID" value="1002" /> <add key="Name" value="Suzuki" /> </appSettings>
C#
1using System.Configuration; 2 3public string GetConnectionString() 4 { 5 string con = ConfigurationManager.AppSettings["ID"]; 6 7 //接続文字列の取得(SQL Serverへの接続する情報の取得) 8 string test = ConfigurationManager.ConnectionStrings["DB"].ConnectionString; 9 10 return ConfigurationManager.ConnectionStrings["DB"].ConnectionString; 11 }
2.配布されたファイルをそのまま「sample.config」の名前で追加する。
3.「App.config」を「app.config」で追加する。
どれを行っても解決ができなかった。
SQL Server Management StudioによってデータベースをWindows認証で作成しました。
VisualStadio2022ではWindowsフォームアプリをアプリを.NET6.0のFramework で作成している。











回答3件
あなたの回答
tips
プレビュー