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

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

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

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

SQL Server

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

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

Q&A

2回答

1318閲覧

VisualStdio2015からSqlServerへアクセスできない

r.i.

総合スコア15

C#

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

SQL Server

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

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

0グッド

0クリップ

投稿2019/01/06 08:24

VisualStdio2015からSqlServerへアクセスしたい

モデルの開発(ASP.NET MVC)をしているのですが、
VisualStdio2015からWeb.configファイル経由でSqlSerVerへアクセスする際に
ブラウザ側で、Web.configファイルにエラーが表示されます。
以下のようなエラーです。
「パーサー エラー メッセージ: 認識されない構成セクション connectionString です。」
このメッセージから、<connectionStrings>タグで発生しているエラーだとわかりました。

Web.configファイルの<connectionStrings>タグの構成としては、
<add>要素を追記し、
name属性にコンテキストクラスの名前を、
connectionString属性に
Date Source(接続するSQLサーバのホスト名)と
Initial Catalog(DB名)と
AttachDBFilename(適当なDBファイルのフルパス)
Integrated Security = True(windows認証のため)
providerName = "System.Data.SqlClient"(←ここが良く分かりませんでしたので、ネットで調べてSQLOLEDBにも設定して試しましたが接続できませんでした)

設定した項目は以上になります。
接続するための方法を教えてください。
よろしくお願いいたします。

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

SqlServerのエディションとバージョンは
Microsoft SQL Server 2014 - 12.0.2269.0 (X64)
でVisualStdioはMicrosoft VisualStdio Express 2015 for webです。

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2019/01/06 09:50

接続文字列を取得しようとしている側の生のコードと、取得される側の web.config の生のコードを書いてください。きちんと情報を提供してもらわないと誰にも何も分かりません。
退会済みユーザー

退会済みユーザー

2019/01/06 10:04

注: SQL Server にアクセスできるできない以前の問題です。接続文字列が取得できていない。
r.i.

2019/01/09 10:21

分かりました。ありがとうございます 接続文字列を取得するにはどうすればいいのでしょうか? このような書き方です <configuration> ・・・他のタグ・・・ <connectionString> <add name ="「コンテキストクラス名」" connectionString ="Date Source = 「接続するSQLサーバのホスト名」;Initial Catalog=「DB名」; AttachDBFilename=「DBファイル=.mdfのフルパス」; Integrated Security = True"/> </connectionString> </configuration>
退会済みユーザー

退会済みユーザー

2019/01/09 10:48

接続文字列を取得しようとしている側の生のコードと、取得される側の web.config の生のコードを書いてください・・・とお願いしたのですが。理解されてますか?
r.i.

2019/01/09 11:03

すみません 初学者なのでよく理解できません 本には接続文字列は<connectionString>-<add>要素内のconnectionString属性(パラメータ=値;...の形式)のことだと記載されていました
退会済みユーザー

退会済みユーザー

2019/01/09 11:14

「本」と言われても持ってない人には何も分かりません。Visual Studio 2015 のテンプレートを利用して MVC アプリのプロジェクトを自動生成したのではないのですか? であれば、その話(具体的にどのテンプレートを使って、どのような設定にしてプロジェクトを自動生成させたか)から始めないと・・・ そうではなくて、質問者さんが独自に作ったものもしくは「本」独自の方法だとすると、第三者には何も分かりません。
r.i.

2019/01/09 12:43

テーブルから取り出したメンバー情報をブラウザで一覧表示することを試みています。 エンティティを定義し、コンテキストクラスにDbSet<定義したエンティティ型>のプロパティを定義し、そのプロパティは同名のテーブルにアクセスし定義したエンティティのインスタンスに割り当てます そのご、コントローラー内のviewメソッドにコンテキストクラスのプロパティを渡しています。 コントローラーからモデルにアクセスして、テーブルの内容をブラウザ上で表示したいというのがやりたいことです。 この過程で、DBにアクセスする情報をWeb.configに記載しました・・・
退会済みユーザー

退会済みユーザー

2019/01/09 13:34

そう言われても、今までの説明は決して具体的ではなく、少なくとも自分には、あなたが何をしているのか分かりません。何となく EF Code First で何かしたのかなと想像してますが、その程度です。一度 https://teratail.com/help/question-tips を読んでください。それにも書いてありますが、現状「自分が今『何がわからないのか』がわかっていて、言語化できている」というのができておらず、「何がわからないかわからない人から質問を受けても、答える側も困ってしまいます」という状況です。
r.i.

2019/01/13 10:36 編集

確かにそうですね ASP>NETの初学者で、かつterateilで初めての質問でしたが、自分が何がしたいのかをきちんと理解して、整理して質問するべきでした ちなみに本は秀和システムのASP.NET MVC5のスキャフォールディング機能の説明の前(2章)(モデルからテーブルに接続する)で、スキャフォールディング機能もまだ学習していない段階です 回答していただきありがとうございます。 回答していただいた内容を元に、問題の解決と更なる学習に努めたいと思います。
r.i.

2019/01/13 11:04 編集

まだスキャフォールディング機能の前段階なので、また理解してから分かりやすいようにご説明します
退会済みユーザー

退会済みユーザー

2019/01/13 11:22

だから「本」がどうのこうの言われても、本を持ってない人には何もわからないということを認識しましょう。前にも書きましたが、一度 https://teratail.com/help/question-tips を読んでください。そして、「自分が今『何がわからないのか』がわかっていて、言語化できている」ができてないところを何とかしてください。一番最初に書きましたが、接続文字列を取得しようとしている側の生のコードと、取得される側の web.config の生のコードを書いてください。きちんと情報を提供してもらわないと誰にも何も分かりません。
r.i.

2019/01/13 11:37

はい そうします(一度保留でお願いします)
guest

回答2

0

質問者さんが何をしているのか不明ですので、接続文字列を取得できない原因と対策をピンポイントで回答することはできませんが、以下のやりたいことはこうすればできるという方法・説明を書いておきます。

Microsoft SQL Server 2014 - 12.0.2269.0 (X64)
テーブルから取り出したメンバー情報をブラウザで一覧表示することを試みています。

LocalDB または SQL Server Express 版でないと EF Code First で DB を生成することはできないので、SQL Server 2014 のインスタンスにアタッチされた既存の DB のテーブルのレコード一覧を表示したいということと理解して説明します。理解が違っていたらどこがどう違うか詳しく書いてください。

SQL Server 2014 のインスタンスにアタッチされた既存の DB がある場合は、Visual Stidio の ADO.NET Entity Data Model ウィザードを利用して EDM を生成し、それをベースに Visual Studio のスキャフォールディング機能を使って Controller と View を自動生成すれば、自分では一行もコードを書かなくても Create, Read, Update, Delete (CRUD) 操作を行うための ASP.NET MVC アプリを作ることができます。

その中には当然一覧表示する機能も含まれます。

詳しい手順は以下の記事を見てください。

スキャフォールディング機能
http://surferonwww.info/BlogEngine/post/2017/07/23/creating-controller-and-view-in-mvc-using-scaffolding-function.aspx

接続文字列は自力で書かなくてもウィザードが自動的に生成してくれます。上の記事の「(8) 接続文字列の確認と web.config への保存」のセクションの画像を見てください。

その画像にあるように、NORTHWINDEntities という名前で接続文字列が web.config の connectionStrings セクションに以下のように設定されます。

これが私の言う「取得される側の web.config の生のコード」です。

<?xml version="1.0" encoding="utf-8"?> <configuration> ・・・中略・・・ <connectionStrings> ・・・中略・・・ <add name="NORTHWINDEntities" connectionString="metadata=res://*/NorthwindEdm.csdl|res://*/NorthwindEdm.ssdl|res://*/NorthwindEdm.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=(local)\sqlexpress;initial catalog=NORTHWIND;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" /> ・・・中略・・・ </connectionStrings> ・・・中略・・・ </configuration>

一方、私が言う「接続文字列を取得しようとしている側の生のコード」は EDM を自動生成する際、これもやはり自動生成されるコンテキストクラスのコンストラクタに、以下の画像の通り設定されます。

イメージ説明

この EDM をベースにスキャフォールディング機能でアプリを自動生成すると、以下のような一覧表示の機能もそれに含まれます。コードは、接続文字列等を含め、自分では一行も書く必要はありません。

イメージ説明

投稿2019/01/10 03:07

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

0

<connectionString> ・・・云々・・・ </connectionString>

ではなく

<connectionStrings> ・・・云々・・・ </connectionStrings>

なのでは?

投稿2019/01/18 01:18

kariya

総合スコア75

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問