【问题标题】:Correct connection string for VB.NET WinForms application connecting to local SQL Server db连接到本地 SQL Server db 的 VB.NET WinForms 应用程序的正确连接字符串
【发布时间】:2014-11-18 15:35:07
【问题描述】:

我正在 VS2013 中构建一个 VB.NET WinForms 应用程序。该程序使用的是已部署应用程序本地的 SQL Server 2012(“完整”版本的 SQL Server - 不是 SQL Express)数据库 - 在开发计算机和将使用该程序的计算机(唯一的计算机)上。

在程序中,当用户点击一个按钮时,需要执行一个sql脚本——电脑上的一个sql文件。

根据我尝试的连接字符串类型,我会遇到不同的错误,我不确定要使用哪个连接字符串。

这是我的代码:

Private Sub btnLoadMasterData_Click(sender As Object, e As EventArgs) Handles btnLoadMasterData.Click
    Dim connString As String = "Server=DHSNET\[dbuser];Database=hours_analysis;User Id=[USERNAME];Password=[PASSWORD]"
    'Dim connString As String = "Server=DHSNET\[dbuser];Database=hours_analysis;Integrated Security=True"
    'Dim connString As String = "Server=(LocalDB)\v11.0;Integrated Security=True;AttachDbFilename=C:\[PATHTOFILE]\hours_analysis.mdf"
    'Dim connString As String = "Data Source=(LocalDB)\v11.0;AttachDbFilename=C:\[PATHTOFILE]\hours_analysis.mdf;Integrated Security=True;Connect Timeout=30"

    Dim file As New FileInfo("C:\HL_Time_Entry_Reporting\SQL Scripts\stage_employee_hours_load.sql")
    Dim sqlText As String = file.OpenText().ReadToEnd()

    ExecuteCommand(sqlText, connString)
End Sub

Private Sub ExecuteCommand(queryString As String, connectionString As String)
    Using connection As New SqlConnection(connectionString)
        Dim command As New SqlCommand(queryString, connection)
        command.Connection.Open()
        command.ExecuteNonQuery()
    End Using
End Sub

如您所见,我尝试了几种类型的连接。第四个是VS2013为应用程序中的datagridviews设置连接数据库,加载并正常工作。

我从ConnectionStrings.com "SQL Server 2012 connection strings" page 获得了其他三个连接字符串。

当我使用第一个和第二个连接字符串时,会有大约 5 秒的暂停,然后在 Connection.Open() 行上出现 SqlException 错误,说

在建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。 (提供者:SQL 网络接口,错误:26 - 错误定位服务器/指定实例)

当我对.mdf 文件使用任一连接字符串时,我收到SqlException 错误提示

数据库“hours_analysis”不存在。确保输入的名称正确。

(文件路径正确)

我需要使用什么连接字符串?

【问题讨论】:

  • 你在使用 SQLExpress 吗?我使用带有 Data Source=.\SQLEXPRESS 作为连接字符串的本地服务器。
  • @Mark - 我在我的问题中链接到该页面...
  • 您可以使用您在 SSMS 登录屏幕上的相同信息。 Server 部分是登录掩码 Server Name,如果您使用 Integrated Security 并替换为 ,则可以删除 User IDPassword集成安全=True;
  • @Steve - 明白了! :) 作为记录,我使用我的计算机名称作为服务器。 DHSNET 是我在工作中登录的网络域。所以这对我有用: Dim connString As String = "Server=[LOCALCOMPUTERNAME];Database=hours_analysis;Integrated Security=True"

标签: vb.net winforms visual-studio-2013 sql-server-2012 connection-string


【解决方案1】:

对于其他寻求帮助的人,这是我在 App.config 文件中的内容:

<add name="[APPLICATIONNAME].My.MySettings.LocalDevServerConnectionString"
        connectionString="Data Source=[YOURCOMPUTERNAME];Initial Catalog=[DBYOUWANTTOCONNECTOT];Integrated Security=True"
        providerName="System.Data.SqlClient" />

【讨论】:

    猜你喜欢
    • 2023-03-28
    • 2019-02-07
    • 2012-09-17
    • 2014-02-06
    • 1970-01-01
    • 2013-01-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多