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

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

ただいまの
回答率

90.47%

  • C#

    7421questions

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

  • SQL Server

    603questions

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

  • ASP.NET

    544questions

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

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

受付中

回答 4

投稿

  • 評価
  • クリップ 0
  • VIEW 1,902

mohumohu

score 9

お世話になります。

今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);
            }
        }
    }
}
=================================================

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

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

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

    クリップを取り消します

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

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

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

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

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

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

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

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

    質問の評価を下げる

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

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

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

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

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

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

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

    詳細な説明はこちら

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

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

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

回答 4

0

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

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

0

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

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

0

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

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

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

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

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

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

関連した質問

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

  • C#

    7421questions

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

  • SQL Server

    603questions

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

  • ASP.NET

    544questions

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