web-dev-qa-db-ja.com

接続文字列が正しい場合の「インスタンス障害」エラー

ページ読み込みイベントに次のコードがあります:

 Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

        con = New SqlConnection("Data Source=14GRAFICALI\\SQLEXPRESS;Initial Catalog=sagar;Integrated Security=True")
        '-----------------------fill name ddl------------------------------'

        Try

            da = New SqlDataAdapter("select EmpName from empMaster_VB", con)
            ds = New DataSet()
            da.Fill(ds)
            For i As Integer = 0 To ds.Tables(0).Rows.Count

                ddlName.Items.Add(ds.Tables(0).Rows(i)(0).ToString())

            Next


        Catch ex As Exception

        End Try

        '--------------------------------------------------------------------'


        '----------------fill expence-------------------------------------'

        Try

            da = New SqlDataAdapter("select ExpName from expenceType_VB", con)
            ds = New DataSet()
            da.Fill(ds)
            For i As Integer = 0 To ds.Tables(0).Rows.Count

                ddlExpence.Items.Add(ds.Tables(0).Rows(i)(0).ToString())

            Next


        Catch ex As Exception

        End Try


        '---------------------------------------------------------------'



    End Sub

このコードは、データベーステーブルのドロップダウンに名前と経費値を入力するためのものです。

instance failure 'コードの実行中にエラーが発生しました。

スタックで answers の1つを確認し、接続文字列を確認しました。しかし、私の接続文字列も正しいです。

このコードに他に不足しているものがあれば、私を助けてください。

20
C Sharper

「インスタンスの失敗」というエラーが発生したため、SQL Serverインスタンスのエラーである可能性があります。

SQL Serverインスタンス(MSSQLSERVER)が実行されていることを確認します。チェックインできる場所は、サービスリストです。サービスリストに入るには、実行ダイアログボックスを開いて「services.msc」(引用符なし)と入力し、Enterキーを押します。これにより、サービス管理コンソールが表示され、インスタンスが実行中かどうかを確認できます。

それでも問題が解決しない場合は、次を使用してみてください:データソース=。\ SQLEXPRESS代わりに.. :)

ハッピーコーディング... :)

31

私はつながりがあります:

Data Source=MyComputerName\SQL2012ENTERPRS;Initial Catalog=RESTFUL; User Id=myuser; Password=mypass123;

私のサーバーは:MyComputerName\SQL2012ENTERPRS

しかし、私は文字列を使用しているので、\をさらに追加します。そのため、私のコードでは次のようになります。

public string connectionString = "Data Source=DAFWKN409C67Q\\SQL2012ENTERPRS;Initial Catalog=RESTFUL; User Id=rest_user; Password=rest_pwd_01;";

デフォルトの文字列ブロックを使用していないため、\の1つを削除する必要があることを忘れてしまいました。接続文字列を保存するには、XMLファイルを使用します。その後、すべてが大丈夫です。したがって、私の提案は、インスタンス名が正しくないことです。

これは、SQL Expressを使用してローカルPCを使用する接続文字列のサンプルです。

string servername = @"Data Source=.\SQLExpress;Initial Catalog=Workshop;Integrated Security=True";

サーバー名とインスタンス名を自分で変更する必要があります。正しいことを確認してください。

16
toha

appsettings.Development.jsonから接続文字列を取得したため、この問題が発生しました:

"Server=msi\\DataBaseName;Database=Super25;Trusted_Connection=True;"

しかし、私がに変わったとき

"Data Source=msi\DataBaseName;Initial Catalog=Super25;Integrated Security=True;"

解決しました!

10
Clever Almeida

私の場合、ダブル\\を1つのスラッシュ\:=にキックアップするだけです

5
Hamit YILDIRIM

「データソース」宣言の前にワイルドカード「@」を使用します。このような何か:connetionString = @ "Data Source = ...

したがって、バックスラッシュのみを使用できます。このように:@ "Data Source =。\ SQLEXPRESS; AttachDbFilename = C:\ Users\jcabarros ...

2
JBarros

これは古いスレッドですが、おそらく良いアップデートです。ウェブ検索で良い答えが見つかりませんでした。

同じソリューションの別のプロジェクトからDbContextを参照しようとすると、同じ「インスタンスの失敗」エラーが発生しました。最初のプロジェクトにはDbContextと接続文字列があり、ソリューションの2番目のプロジェクトはそれを参照しようとしました。 1つ目のアプリはそれ自体で問題なく実行され、2つ目のアプリを実行したときにのみ問題が発生しました。

問題は、最初のプロジェクトの接続文字列を含むapp.configファイルが2番目のプロジェクトのビュー/スコープにないことでした。したがって、接続文字列は組み立てられませんでした。

私の解決策は、最初のプロジェクトから2番目のプロジェクトにapp.configをコピーすることでした。

これはVS 2019でした。

お役に立てれば

0
S-eagle