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

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

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

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

SQL Server

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

ASP.NET

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

Q&A

4回答

13957閲覧

SQLServerアクセスが拒否される問題について

mohumohu

総合スコア15

C#

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

SQL Server

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

ASP.NET

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

0グッド

0クリップ

投稿2016/03/31 13:00

お世話になります。

今C#を使用し、SQLserverに接続、DateTableにSQLクエリーを入れる処理の実装をしています。
しかし、DBにアクセスしようとすると、「Connection.servervesionは型System.InvalidOperationEいxceptionの例外をスローしました」となり、DBに接続できません。

どのようにコードを修正すれば、DBに接続し、DateTableにSQLクエリを格納出来ますでしょうか。

=============================
以下コードです。

using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;

namespace WebApplication4
{
public partial class Projects : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{

} protected void Seach_Project(object sender, EventArgs e) { SqlConnection connection = new SqlConnection(); SqlCommand command = new SqlCommand(); DataTable ds = new DataTable(); //接続文字列 connection.ConnectionString =@"Data Source=.\SQLEXPRESS;AttachDbFilename= C:\Users\user\Documents\Visual Studio 2010\Projects\WebApplication4 \WebApplication4\App_Data\SES_DB.mdf; Integrated Security=True;User Instance=True"; using (SqlDataAdapter adapter = new SqlDataAdapter()) { //connection内でConnection.servervesionは型System.InvalidOperationException 例外をスローしましたと例外がスローされ、DBにアクセスが出来ないです。 command.Connection = connection; string ProjectName = ""; string ProjectStart = ""; string ProjectStaion = ""; string ProjectPlyse = ""; string ProjectLowerLimit = ""; string ProjectUpperLimit = ""; string language01 = ""; string language02 = ""; string language03 = ""; string language04 = ""; if (Project_language01.Checked == true) { language01 = "PHP"; } if (Project_language02.Checked == true) { language02 = "Java"; } if (Project_language03.Checked == true) { language03 = "HTML/CSS"; } if (Project_language04.Checked == true) { language04 = "COBOL"; } string[] ProjectTable = new string[10]; ProjectTable[0] = Project_name.Text; ProjectTable[1] = Project_Start.Text; ProjectTable[2] = Project_Station.Text; ProjectTable[3] = Project_Plyse.Text; ProjectTable[4] = Project_Lower_Limit.Text; ProjectTable[5] = Project_Upper_Limit.Text; ProjectTable[6] = language01; ProjectTable[7] = language02; ProjectTable[8] = language03; ProjectTable[9] = language04; for (int i = 0; i < 1; ++i) { if (ProjectTable[0].Length != 0) { ProjectName = ProjectTable[0].ToString(); } else { ProjectName = "0"; } if (ProjectTable[1].Length != 0) { ProjectStart = ProjectTable[1].ToString(); } else { ProjectStart = "0"; } if (ProjectTable[2].Length != 0) { ProjectStaion = ProjectTable[2].ToString(); } else { ProjectStaion = "0"; } if (ProjectTable[3].Length != 0) { ProjectPlyse = ProjectTable[3].ToString(); } else { ProjectPlyse = "0"; } if (ProjectTable[4].Length != 0) { ProjectLowerLimit = ProjectTable[4].ToString(); } else { ProjectLowerLimit = "0"; } if (ProjectTable[5].Length != 0) { ProjectUpperLimit = ProjectTable[5].ToString(); } else { ProjectUpperLimit = "0"; } if (ProjectTable[6].Length != 0) { language01 = ProjectTable[6].ToString(); } else { language01 = "0"; } if (ProjectTable[7].Length != 0) { language02 = ProjectTable[7].ToString(); } else { language02 = "0"; } if (ProjectTable[8].Length != 0) { language03 = ProjectTable[8].ToString(); } else { language03 = "0"; } if (ProjectTable[9].Length != 0) { language04 = ProjectTable[9].ToString(); } else { language04 = "0"; } } command.CommandText = "SELECT * FROM Project_Table WHERE Project_name='" + ProjectName + "'" + "OR Project_Place='" + ProjectStaion + "'" + "OR Project_Start='" + ProjectStart + "'" + "OR Project_Playse='" + ProjectPlyse + "'" + "OR Project_Lwor_Limit='" + ProjectLowerLimit + "'" + "OR ProjecT_Max_Limiit='" + ProjectUpperLimit + "'" + "OR Project_language01='" + language01 + "'" + "OR Project_language02='" + language02 + "'" + "OR Project_language03='" + language03 + "'" + "OR Project_language04='" + language04 + "';"; adapter.SelectCommand = command; // SQLを実行し結果をdsの中に格納します。 adapter.Fill(ds); } } }

}
=================================================

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

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

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

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

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

guest

回答4

0

connection.ConnectionString =@"Data Source=.\SQLEXPRESS;AttachDbFilename=
C:\Users\user\Documents\Visual Studio 2010\Projects\WebApplication4
\WebApplication4\App_Data\SES_DB.mdf;
これって、動的に

サーバーインスタンス:SQLEXPRESS へ
SES_DB.mdf
をアタッチしようとしていますか?

The Connection Strings Reference
http://www.connectionstrings.com/

SQL Server connection strings
http://www.connectionstrings.com/sql-server/
で、何で接続したいのかを、理解して接続文字列を作成してください。

MS-SQL Server Management Studio にて、
サーバインスタンス:SQLEXPRESS
を、確認して、「SES_DB.mdf」を使っている
データベースが居ないかどうか確認します。
居る場合は、アタッチ出来ないですよね?

SQL Server Express ユーザー インスタンス
https://msdn.microsoft.com/ja-jp/library/ms254504(v=vs.110).aspx
アプリケーション内でデータベースをアタッチするには?[C#、VB]
http://www.atmarkit.co.jp/fdotnet/dotnettips/711attachdb/attachdb.html

投稿2016/04/01 06:42

daive

総合スコア2028

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

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

0

connection.ConnectionStringがうまく通っていないっぽいですね。ご存知かもしれませんが、そもそも間違っていないかを確認する方法を記載しておきますね。

デスクトップなどで新規でテキストドキュメントなどを作成して拡張子をudlにしてください。(例「test.udl」)このファイルをダブルクリックで開くとデータリンクプロパティというものが開かれます。(開かれなければ、プログラムから開く-OLE DE CORE Servicesを選択して開いてください。

開いたら、「プロバイダー」を設定の上「接続」のタブで接続したいサーバーを選択して、接続テストを行ってください。うまく接続ができましたらOKで閉じ、「test.udl」をテキストエディターで開いてみてください。この一番下の文字列が、ConnectionStringになっているはずです。
これが、今書いているものと一致しているか確認してみてください。

投稿2016/04/01 06:11

Yuki_S

総合スコア356

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

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

0

ConnectionStringの確認くらいですかね
ブレークポイントを付けてconnection.ConnectionStringを確認してみては?

投稿2016/03/31 18:16

dojikko

総合スコア3939

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

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

0

DBに接続する箇所の問題に対しては、接続文字列の設定部分である connection.ConnectionString に対して改行を含めて記述していたりしませんか?もし、そうであれば一行にまとめて試してみてください。

投稿2016/03/31 15:47

ps13zier

総合スコア433

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問