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

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

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

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

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

ASP.NET

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

Q&A

解決済

2回答

10338閲覧

[ConfigurationErrorsException]: 構成セクションは、CDATA、あるいはテキスト要素を含むことはできません' を解決したい

sky_

総合スコア11

C#

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

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

ASP.NET

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

0グッド

0クリップ

投稿2017/08/27 07:13

編集2017/08/27 08:21

ログイン型の掲示板を作成しています。
開発環境はWindows visual studio 2017 バージョン4.5.2 C#です。
アカウント登録をSQL serverを使って開発しているのですが行き詰ってしまって質問させていただいています。
※visual studio、C#での開発は初めてです。


web.conflgの内容

<connectionStrings> <add name="sqlsvr" connectionString="Data Source=(LocalDB)\MSSQLLocalDB; AttachDBFilename=C:\Users\ikunao\Documents\Visual Studio 2017\WebSites\WebSite1\App_Data\DB.mdf;Integrated Security=false;(.mdfのプロパティにある接続文字列をコピペしたのですができません。 Integrated Security=false"/>   </connectionStrings>

ボタンをクリックしたときのアクション
(sqlserverに接続してクエリを追加する処理がしたい)

protected void Unnamed1_Click(object sender, EventArgs e) { // 接続文字列の取得 ###var connectionString = ConfigurationManager.ConnectionStrings["sqlsvr"].ConnectionString; ↑で[ConfigurationErrorsException]: 構成セクションは、CDATA、あるいはテキスト要素を含むことはできません' というエラーが発生する using (var connection = new SqlConnection(connectionString)) using (var command = connection.CreateCommand()) { try { // データベースの接続開始 connection.Open(); // SQLの準備 command.CommandText = @"INSERT INTO Account (Id, Name, Pass) VALUES (@ID, @PASSWORD, @ROLE_NAME)"; command.Parameters.Add(new SqlParameter("@ID", Id)); command.Parameters.Add(new SqlParameter("@PASSWORD", Name)); command.Parameters.Add(new SqlParameter("@ROLE_NAME", Pass)); // SQLの実行 command.ExecuteNonQuery(); } catch (Exception exception) { Console.WriteLine(exception.Message); throw; } finally { // データベースの接続終了 connection.Close(); } Response.Redirect("./AddNewMemberCheck.aspx"); } }

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2017/08/27 07:22

何を作っているかと(コードから Web Forms アプリりではないかと想像はしてますが)、自分の開発環境(OS, ASP.NET, IIS,Visual Studio のバージョン、DB サーバーは何かとそのバージョン、IIS Express を使っているのかローカル IIS なのか、ブラウザは何かなど)を書いてください。質問するときのイロハのイです。
退会済みユーザー

退会済みユーザー

2017/08/27 07:25

あと、現状の接続文字列をきちんと全部正確に書いてください。「.mdfのプロパティにある接続文字列をコピペした」とか言われても何のことやら分かりません。
sky_

2017/08/27 08:22

アドバイスありがとうございます。訂正させていただきました。ブラウザはいつもIEで実行しています。
guest

回答2

0

ベストアンサー

アカウント登録をSQL serverを使って開発しているのですが

接続文字列の Data Source=(LocalDB)\MSSQLLocalDB を見ると SQL Server ではなくて LocalDB のようですが?

あと、IIS Express を使っているのかローカル IIS なのか依然として不明なのですが・・・

多分、SQL Server ではなくて SQL Server 2016 Express LocalDB、Web サーバーは IIS Express であろうと想像してレスします。

接続文字列の、

AttachDBFilename=C:\Users\ikunao\Documents\Visual Studio 2017\WebSites\WebSite1\App_Data\DB.mdf;

から、DB.mdf はプロジェクトの App_Data フォルダにあると思いますが(ソリューションエクスプローラーを見て確認してください)、そうであれば接続文字列は以下のようにすればよいはずです。

<add name="sqlsvr" connectionString="Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\DB.mdf; Initial Catalog=<データベース名>; Integrated Security=True" providerName="System.Data.SqlClient" />

|DataDirectory| は App_Data フォルダを意味します。

<データベース名> のところは Account が存在するデーターベース名にしてください。

【追伸】

今気が付いたのですが、質問者さんの前のスレッド(同じく掲示板開発とのこと)、

https://teratail.com/questions/88305

を見ると ASP.NET MVC のようですが、このスレッドのコードを見ると ASP.NET Web Forms のようです。

両方をごっちゃにしてメチャクチャなことをしているということはないですよね?

だから何を作っているのか聞いたのですが、その意味が理解いただけてないような感じです。

投稿2017/08/27 10:05

編集2017/08/27 10:36
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

0

AttachDBFilename=に続くファイルパスに空白が含まれていることが原因かと思われます。
以下のように、コーテーションでくくればどうでしょうか。

vb.net

1AttachDBFilename="C:\Users\ikunao\Documents\Visual Studio 2017\WebSites\WebSite1\App_Data\DB.mdf";

投稿2017/08/27 09:23

hakkun

総合スコア25

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

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

sky_

2017/08/27 09:36 編集

””で囲むと区切りの\がエラーを引き起こしてしまってダメでした。エスケープ処理をすれば解決するかなと思って”の前に\を入れてみたのですが、ダメでした。このエスケープ処理が間違っているのでしょうか?
sky_

2017/08/27 09:40 編集

connectionString='Data Source=(LocalDB)\MSSQLLocalDB;AttachDBFilename="C:\Users\ikunao\Documents\Visual Studio 2017\WebSites\WebSite1\App_Data\DB.mdf";Integrated Security=false' に変更してエラーがなかったのでやってみましたが同じエラーが出ました。
hakkun

2017/08/27 10:00

なるほど、ConnectionStrings全体が囲まれているので、ここを囲む必要はありませんでしたね・・・ エラーメッセージ的には、接続文字列に記号が含まれていたりする場合には出るようですが、今回は関係なさそうですね。 こちらの記事を参考に、GUIの力を借りる作戦はどうでしょうか。接続文字列に誤りがあるのであれば、GUIで生成したものに置き換えることで解消しそうな気もします。 http://blog.clock-up.jp/entry/2016/07/27/vs-sqlserver-localdb
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問