【发布时间】: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 ID 和 Password集成安全=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