質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

web.config

web.configはASP.NETウェブアプリケーションの主な設定や構成ファイルを格納するXMLファイルです。

Q&A

解決済

1回答

1397閲覧

Web.configまたはapp.configなどconfigファイルはデータベースとアプリケーション構成の仕組みとつながるかがわからない

退会済みユーザー

退会済みユーザー

総合スコア0

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

web.config

web.configはASP.NETウェブアプリケーションの主な設定や構成ファイルを格納するXMLファイルです。

0グッド

1クリップ

投稿2022/10/28 13:14

前提

VisualStadio2022のC#で書いたプログラムからSQLServerに接続するために
WEB.configまたはapp.configというものが必要であるので、app.configを作成した。

作製したが、なぜWEB.configまたはapp.configというものがデータベースの接続に必要であるかわからない。

実現したいこと

・WEB.configまたはapp.configというconfigファイルがデータベースとどのようにしてつながっているか知りたい。

・アプリケーションとデータベースがどのようにつながっている仕組みを理解したい。

試したこと

1.configファイルの作成について調べたが、サイトに書かれている内容が理解できない。

2.理解を深めるために、アプリケーションとデータベースがどのような仕組みを理解するために調べていたが

アプリケーションがソフトウェアの一つで、特定の作業の目的に応じて設計されたもののこと
データベースがコンピュータ上で一定の形式で作成,管理されたデータを集めたシステムのこと

は理解したがその2つがどのような構成でつながるか仕組みをデータベース・サーバーが関係していることが分かった。

しかし、Googleやmicrosoftlearnで検索したが、どの内容も文字だけで具体的に自分が行っているC#とSQLにつながりついて関係性がわからなくて、難しく初心者には理解できなかった。

補足情報(FW/ツールのバージョンなど)

SQL Server Management StudioによってデータベースをWindows認証で作成しました。

VisualStadio2022ではWindowsフォームアプリをアプリを.NET6.0 で作成している。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Zuishin

2022/10/28 13:24

ただの設定ファイルです。 接続文字列などを保存するのに使います。
退会済みユーザー

退会済みユーザー

2022/10/28 13:38

すみません。もう少し詳しくできますか? 例えば、 設定ならapp.configとWeb.configというものがデータベースの仕組みがどのようにつながりをしていて、異なっているのですか? 後、アプリケーションとデータベースがどのようにつながっている仕組みについてもお願いします。
Zuishin

2022/10/28 13:39

接続文字列はわかりますか?
退会済みユーザー

退会済みユーザー

2022/10/28 13:40

すみません。わからないです。
Zuishin

2022/10/28 13:46

では、設定ファイルの意味はわかりますか?
退会済みユーザー

退会済みユーザー

2022/10/28 13:56

設定に必要なファイルですか
退会済みユーザー

退会済みユーザー

2022/10/28 14:00

でしたら、その解釈ならconfigファイルは設定に必要なファイルですが、 app.configとWeb.configで何がかわりますか? アプリの設定に必要なファイルだけなく、もうすこしデータベースやVisualStadio2022ではWindowsフォームアプリなどの専門的な意味です
退会済みユーザー

退会済みユーザー

2022/10/28 14:50

また、回答するとき ・アプリケーションとデータベースがどのようにつながっている仕組みを理解したい。 に関する答えもほしいです。
Zuishin

2022/10/28 23:59

回答へのコメントを見ると、DbDataAdapter や DbDataCommand や DataTable もわからないんですよね? 説明が広範囲になりすぎるので、まず入門書を読んでください。
退会済みユーザー

退会済みユーザー

2022/10/29 00:24

前のコメントで configファイルは設定に必要なファイルですが、 app.configはアプリの設定に必要なファイルの解釈でよろしいでしょうか?
退会済みユーザー

退会済みユーザー

2022/10/29 01:36 編集

本題の「Web.configまたはapp.configなどconfigファイルはデータベースとアプリケーション構成の仕組みとつながるかがわからない」は下の私の回答で回答済みです。それ以上のものはありません。 上に質問者さんが書いた「アプリケーションとデータベースがどのようにつながっている仕組み」とか、「app.configはアプリの設定に必要なファイルの解釈でよろしいでしょうか?」とか、回答欄の質問者さんの 2022/10/28 23:48 のコメントの質問は本題とは違う話です。一つの回答が次の疑問を呼んで、次から次へと質門を繰り返すのはやめてください。スレッドの中がゴッチャになって訳が分からなくなります。 前のスレッドでも言いましたが、本題と違う新たな質問は新たに別のスレッドを立てて質問してください。その際は、自分で勉強して、話が通じる程度には基本的な知識をつけてください。また、このスレッドはクローズしてください。
guest

回答1

0

ベストアンサー

なぜ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 だけ変更すれば対処できるからです。

投稿2022/10/28 14:21

編集2022/10/28 14:24
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2022/10/28 14:48 編集

ハードコーディングとは、ソースコードの中にそのまま書き込んでしまうことであっていますか? また、 前のスレッドで説明したように、できれば connectionStringのタグは何を示しているのか addのタグにconnectionStringは何を示しているのか と解説があるとありがたいです。 特に Integrated Security = True" や providerName="Microsoft.Data.SqlClient" は何のため必要であるかわからないです。 自分でも調べてみたが初心者にとってどのように読みとればよいのかわからないです。 そして、 using (SqlConnection connection = new SqlConnection(connString)) { using (SqlCommand command = new SqlCommand(selectQuery, connection)) { SqlDataAdapter adapter = new SqlDataAdapter(command); DataTable table = new DataTable(); adapter.Fill(table); return table; } } のusing (SqlConnection connection = new SqlConnection(connString))や using (SqlCommand command = new SqlCommand(selectQuery, connection)) など はなにをしているのか わかりません
退会済みユーザー

退会済みユーザー

2022/10/28 15:05

厳しいことをいいますが、質問者さんは知識不足でこういう文章でやり取りする掲示板で質問できるレベルにないです。話が通じないので。 こういう場所で質問して解決したいのなら、まずは話が通じる程度までは基本的な知識を身につけてください。 もし、一から十まで手取り足取り教えてもらえることを期待しているとすると、それはこういう場所では無理です。学校とか face-to-face で先生に質問できる場所を探しましょう。
退会済みユーザー

退会済みユーザー

2022/10/29 01:35 編集

上の質問者さんの 2022/10/28 23:48 のコメントの質問は本題とは違う話です。一つの回答が次の疑問を呼んで、次から次へと質門を繰り返すのはやめてください。スレッドの中がゴッチャになって訳が分からなくなります。 本題の「Web.configまたはapp.configなどconfigファイルはデータベースとアプリケーション構成の仕組みとつながるかがわからない」は上の回答欄に回答済みです。それ以上のものはありません。 前のスレッドでも言いましたが、本題と違う新たな質問は新たに別のスレッドを立てて質問してください。その際は、自分で勉強して、話が通じる程度には基本的な知識をつけてください。また、このスレッドはクローズしてください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問