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

C S*_*per 19 .net vb.net asp.net visual-studio-2008

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

 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
Run Code Online (Sandbox Code Playgroud)

此代码用于填充数据库表中的名称和值的下拉列表.

instance failure在执行代码时遇到错误.

我在堆栈上检查了其中一个答案并检查了我的连接字符串.但是,我的连接字符串也是正确的.

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

Vid*_*ddy 35

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

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

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

快乐的编码...... :)

  • 我从数据源中删除了//并使其成功. (13认同)
  • 是的,//是问题.它同时适用于两者,只是我没有删除//并使其成为/.谢谢 (7认同)
  • 如果机器是本地的,那甚至可以用于 .\SQLEXPRESS... :) (4认同)
  • 完美的解决方案。我的 connectionString 以前是“Server=OWNER-PC\\SQLEXPRESS”,并且在使用 EF6 的 update-database 命令后出现实例故障。将其更改为“Data Source=.\SLQEXPRESS”后一切正常。 (2认同)
  • 我正在使用环境变量来注册连接字符串。因此以下行不通:`Data Source=localhost\\MyInstanceName`。使用环境变量时不必转义 \ 。因此使用“Data Source=localhost\MyInstanceName”解决了这个问题。 (2认同)

toh*_*oha 18

我有联系:

Data Source=MyComputerName\SQL2012ENTERPRS;Initial Catalog=RESTFUL; User Id=myuser; Password=mypass123;
Run Code Online (Sandbox Code Playgroud)

我的服务器是: MyComputerName\SQL2012ENTERPRS

但是因为我使用字符串,\所以我添加了更多,在我的代码中它将是:

public string connectionString = "Data Source=DAFWKN409C67Q\\SQL2012ENTERPRS;Initial Catalog=RESTFUL; User Id=rest_user; Password=rest_pwd_01;";
Run Code Online (Sandbox Code Playgroud)

我忘了我必须删除一个\因为我不使用默认字符串块,我使用XML文件来保存我的连接字符串.一切都好.所以,我的建议是你的实例名称不正确.

这是我的连接字符串示例我使用SQL Express使用本地PC:

string servername = @"Data Source=.\SQLExpress;Initial Catalog=Workshop;Integrated Security=True";
Run Code Online (Sandbox Code Playgroud)

您应该自己修改服务器名称和实例名称,确保它是正确的.


小智 11

我在单独的类库中共享了一张图像,用于找出 EF Core 3.0 上的问题。 根本原因是常规文字 ("Backslash: \") 和逐字文字 ("@"Backslash: \"") 。参考https://csharpindepth.com/Articles/Strings


Cle*_*ida 10

我有这个问题,因为我从以下连接字符串appsettings.Development.json:

"Server=msi\\DataBaseName;Database=Super25;Trusted_Connection=True;"
Run Code Online (Sandbox Code Playgroud)

但是当我换到

"Data Source=msi\DataBaseName;Initial Catalog=Super25;Integrated Security=True;"
Run Code Online (Sandbox Code Playgroud)

解决了!


Ham*_*RIM 6

在我的情况下,只需将双\\踢到一个烂泥\:=)


小智 5

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

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