なぜWEB.configまたはapp.configというものがデータベースの接続に必要であるかわからない。
その「データベースの接続に必要」という考えを捨てましょう。でないと、いつまでたっても分からないと思いますよ。
データベースの接続には web.config も app.config も必要ありません。必要なのは接続文字列です。接続文字列が何か分からないそうですが、そういうごく基本的なところは勉強してください。でないと話が通じません。
例えば以下のようなコードで SQL Server に SELECT クエリを投げてデータを取得する場合、
C#
1private DataTable CreateDataTable()
2{
3 string connString = 接続文字列;
4
5 string selectQuery = "SELECT * FROM Products";
6
7 using (SqlConnection connection = new SqlConnection(connString))
8 {
9 using (SqlCommand command = new SqlCommand(selectQuery, connection))
10 {
11 SqlDataAdapter adapter = new SqlDataAdapter(command);
12 DataTable table = new DataTable();
13 adapter.Fill(table);
14 return table;
15 }
16 }
17}
前のスレッドで説明したように、上の接続文字列が App.config に以下のように保存してあれば、
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<connectionStrings>
<add name="DatabaseConnectionString"
connectionString="Data Source = (localdb)\mssqllocaldb; Initial Catalog = TestDatabase; Integrated Security = True"
providerName="Microsoft.Data.SqlClient" />
</connectionStrings>
</configuration>
上のコードの string connString = 接続文字列; のところは以下のようにして接続文字列を取得できます。
C#
1string connString = System.Configuration.ConfigurationManager
2 .ConnectionStrings["DatabaseConnectionString"]
3 .ConnectionString;
ただし、必ずしもそうする必要はなく、その部分を直接ハードコーディングして以下のようにしても良いのです。
string connString = @"Data Source = (localdb)\mssqllocaldb; Initial Catalog = TestDatabase; Integrated Security = True";
何故接続文字列をハードコーディングしないで App.config に保存してそれから取得するかというと、変更が容易だからです。
開発環境と本番環境では接続文字列が違うのが普通なので、アプリをリリースする前に App.config だけ変更すれば対処できるからです。