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

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

ただいまの
回答率

90.01%

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

受付中

回答 2

投稿

  • 評価
  • クリップ 0
  • VIEW 573

r.i.

score 8

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です。

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • r.i.

    2019/01/13 20:04 編集

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

    キャンセル

  • SurferOnWww

    2019/01/13 20:22

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

    キャンセル

  • r.i.

    2019/01/13 20:37

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

    キャンセル

回答 2

+2

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

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

イメージ説明

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

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


ではなく

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


なのでは?

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

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

  • ただいまの回答率 90.01%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る