【问题标题】:Program won't connect to SQL Server程序无法连接到 SQL Server
【发布时间】:2018-03-06 17:14:55
【问题描述】:

更新:感谢这里的一些大力帮助,此问题已得到解决。如果您遇到类似问题,请执行以下操作:

  • 在运行前启用所有异常
  • 找出您在尝试连接时遇到的确切错误
  • 确保 SQL 端的所有用户都有一个分配给该特定数据库登录名的用户

我有一个非常好的程序,我已经准备好开始推出测试了。问题是,当我编写所​​有这些代码时,我只是使用了集成安全性,它使用我的 Windows 登录名连接到 SQL Server。这很好用,因为我是整个服务器(包括相关数据库)的系统管理员。

现在我已准备好将其推送给其他用户,我需要更改代码以将我的登录名用于所有用户(硬编码到连接字符串)或使用专门用于该数据库的新登录名。

我使用了以下连接字符串,但它不起作用!我还将服务器添加到服务器资源管理器的数据连接部分,但我想我不知道如何告诉程序在我的代码中使用该连接。

我在下面的代码中混淆了密码,但它已写在我的代码中。运行时没有错误或任何东西 - 它只是不连接或提取数据。

想法?谢谢!

Dim strSQLConn As String = ("Server=Hertz1455;Database=AbsenceApplication;User ID=hac0421;Password=********")

更新 - hertz1455 是服务器名称,没有我需要使用的端口。下面是程序启动时的其余代码。我还评论了一些我遇到的错误的答案。

Dim strSQLConn As String = "Fleet_PTO.My.MySettings.AbsenceApplicationConnectionString"
Dim strQuery As String
Dim sqlSQLCon As SqlConnection
sqlSQLCon = New SqlConnection(strSQLConn)
    Dim cmd As SqlCommand = New SqlCommand("SELECT person FROM tblSupervisor", sqlSQLCon)
    sqlSQLCon.Open()
    Dim myDA As SqlDataAdapter = New SqlDataAdapter(cmd)
    Dim myDataTable As DataTable = New DataTable
    myDA.Fill(myDataTable)
    sqlSQLCon.Close()

当我将strSqlConn 更改为下面的字符串时,一切正常。

Dim strSQLConn As String = ("Data Source=Hertz1455;Initial Catalog=AbsenceApplication;Integrated Security=True")

【问题讨论】:

  • 您能否展示一个您用来尝试建立和使用基于此字符串的连接的代码示例?我很难相信没有错误发生。如果您的连接字符串由于某种原因无效,那么SqlConnection::Open() 应该抛出。它不只是默默地决定不连接。 msdn.microsoft.com/en-us/library/…
  • Sql Server 是否设置为允许混合身份验证?
  • 乔尔——这是个好问题。我会检查。编辑:是的,该服务器已打开混合模式。我能够使用我想要的用户名和密码并登录服务器并通过 SSMS 查询

标签: sql-server vb.net connection-string


【解决方案1】:

我们只能猜测,因为问题有点不清楚,没有任何异常或警告消息。

试试这个:

  1. 在任何地方创建一个新的文本文件。 (比如桌面)
  2. 将扩展名重命名为udl 并打开文件。
  3. 您应该会看到 窗口。
  4. 测试您的连接,看看是否可以连接。

Server=Hertz:1455 部分的 Lat94 可能是正确的,尽管它不是默认的 MSSQL 端口。

还要检查您服务器的防火墙,它可能会阻止连接请求。您可能会遇到异常(例如connection forcefully rejected),但它可能不会弹出。检查异常设置,找到相关线索后启用一切。

注意: 亲爱的未来观众,请关注cmets。

【讨论】:

  • 我确定会出现异常或错误,但我想我不确定在哪里可以找到它。我确实在调试输出中显示了这一点 - System.Data.dll 中抛出的异常:'System.ArgumentException'
  • @cardinalsfan 你快到了,这可能是你的问题。能否请您CTRL + SHIFT + E,检查所有异常,然后再次尝试调试?
  • 好的 - 现在我到了某个地方。我启用了所有异常,现在我得到了 - '用户'hac0421'登录失败。'新异常 - System.Data.SqlClient.SqlException:
  • @cardinalsfan 两种可能:要么你的 conn 字符串中的密码不正确,要么你的用户不允许连接到 SQL:itproguru.com/wp-content/uploads/2014/09/image15.png
  • 如果您不确定绝对不是以上两种情况,请返回udl 方法并测试您的凭据。
【解决方案2】:

也许您应该添加您正在使用的驱动程序以完成它,例如:

Dim strSQLConn As String = ("Server=SQLOLEDB;Server=Hertz1455;Database=AbsenceApplication;User ID=hac0421;Password=********")

“1455 at Server=Hertz1455 是端口号吗?在这种情况下不应该是Server=Hertz:1455 吗?

查看this link 了解更多信息。它在 C# 中,但不会有问题。

【讨论】:

  • 如果是端口号,应该是 Hertz,1455 而不是 Hertz:1455
  • hertz1455 是服务器的名称
猜你喜欢
  • 1970-01-01
  • 2023-03-20
  • 1970-01-01
  • 2016-06-16
  • 2021-06-05
  • 1970-01-01
  • 1970-01-01
  • 2011-10-22
相关资源
最近更新 更多