连接字符串正确时出现“实例失败”错误

问题描述 投票:0回答:9

我在页面加载事件上有以下代码:

 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之一,并检查了我的连接字符串。但是,我的连接字符串也是正确的。

如果此代码中缺少任何其他内容,请帮助我。

asp.net .net vb.net visual-studio-2008
9个回答
75
投票

当您收到错误“实例失败”时,这可能是您的 SQL Server 实例的错误..

确保您的 SQL Server 实例(MSSQLSERVER)正在运行,您可以在其中查看:服务列表。要进入服务列表:打开运行对话框并键入:“services.msc”(不带引号)并按 Enter 键。这将带您进入服务管理控制台,您可以在其中检查您的实例是否正在运行..

如果问题仍然存在,请尝试使用:Data Source=.\SQLEXPRESS 代替.. :)

快乐编码...:)


49
投票

我有以下连接:

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;";

我忘记了我必须删除

\
之一,因为我不使用默认字符串块,我使用 XML 文件来保存我的连接字符串,然后一切正常,所以我怀疑您的实例名称不正确。

这是我的连接字符串,我在本地电脑上使用 SQL 快递:

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

您应该使用您的服务器名称和实例名称修改上述字符串并确保其正确。


29
投票

我遇到这个问题是因为我从

appsettings.Development.json
获取了连接字符串:

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

但是当我改为

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

解决了!


28
投票

在我的例子中,只需将双\变成一雪泥\ :=)


11
投票

根本原因是常规文字 ("Backslash: \") 和逐字文字 ("@"Backslash: \"") 。 参考https://csharpindepth.com/Articles/Strings


5
投票

在“数据源”声明之前使用通配符“@”。像这样的东西: connetionString = @"数据源=...

因此您只能使用反斜杠。像这样: @"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\jcabarros...


2
投票

您的答案在于互联服务。编辑提供程序并在找到数据库后选择三个点,在高级中选择高级,您将看到如下所示的连接字符串。

数据源=服务器\服务器实例;初始目录=您的数据库名称;集成安全性=True

您可以在那里添加更多服务并配置更多。


1
投票

我知道这是一个旧线程,但也许是一个很好的更新。我在网络搜索中找不到好的答案。

在尝试从同一解决方案中的另一个项目引用 DbContext 时,我遇到了相同的“实例失败”错误。第一个项目有 DbContext 和连接字符串,解决方案中的第二个项目试图引用它。第一个应用程序本身运行正常,仅在运行第二个应用程序时出现问题。

问题在于,具有第一个项目的连接字符串的 app.config 文件不在第二个项目的视图/范围内。所以连接字符串没有组装。

我的解决方案是将app.config从第一个项目复制到第二个项目。

这是 VS 2019 上的内容。

希望这有帮助


0
投票

有时,由于连接字符串中存在双反斜杠(如

14GRAFICALI\\SQLEXPRESS
)而出现问题。由于这是 XML,因此它将单反斜杠解释为双反斜杠。要解决此错误,只需从连接字符串中删除一个反斜杠即可

© www.soinside.com 2019 - 2024. All rights reserved.