Sql server 如何使用VB连接到SQL Server?

Sql server 如何使用VB连接到SQL Server?,sql-server,vb.net,connection-string,database-connection,Sql Server,Vb.net,Connection String,Database Connection,我正在尝试从VB连接到SQL server。SQL server通过网络使用我的windows登录进行身份验证 我可以使用以下python代码访问服务器: import odbc conn = odbc.odbc('SignInspection') c = conn.cursor() c.execute("SELECT * FROM list_domain") c.fetchone() 此代码工作正常,返回SELECT的第一个结果。但是,我一直试图在VB中使用SqlClient.SqlConn

我正在尝试从VB连接到SQL server。SQL server通过网络使用我的windows登录进行身份验证

我可以使用以下python代码访问服务器:

import odbc
conn = odbc.odbc('SignInspection')
c = conn.cursor()
c.execute("SELECT * FROM list_domain")
c.fetchone()
此代码工作正常,返回SELECT的第一个结果。但是,我一直试图在VB中使用SqlClient.SqlConnection,但它无法连接。我尝试了几种不同的连接字符串,但这是当前代码:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim conn As New SqlClient.SqlConnection
    conn.ConnectionString = "data source=signinspection;initial catalog=signinspection;integrated security=SSPI"
    Try
        conn.Open()
        MessageBox.Show("Sweet Success")
        ''#Insert some code here, woo
    Catch ex As Exception
        MessageBox.Show("Failed to connect to data source.")
        MessageBox.Show(ex.ToString())
    Finally
        conn.Close()
    End Try

End Sub
它失败得很惨,给了我一个错误,上面写着“发生了与网络相关或特定于实例的错误…”(提供程序:命名管道提供程序,错误:40-无法打开到SQL Server的连接)

我很确定这是我的连接字符串,但我所发现的任何东西都没有为我提供任何可靠的示例(server=mySQLServer不是一个可靠的示例)

谢谢!
-Wayne

确定您的服务器和数据库名称相同吗

这里有一个链接,允许您生成连接字符串并对其进行测试

.

查看示例。在python示例中,您似乎是通过ODBC访问数据库


您使用的字符串正在连接内置的.NET SQL Server DB提供程序,因此您需要使用ODBC连接字符串或将数据源更改为实际的服务器名称(如果没有其他实例)或服务器名/实例名。

您正在使用ODBC DSN作为SqlClient服务器名。这不起作用。您必须使用SqlClient连接字符串,对于SqlClient,数据源属性是服务器名或SQL本机客户端服务器别名(与ODBC DSN不同)


用SQL Server主机的实际名称替换
signinspection
。如果是命名实例或侦听非默认端口,则也必须指定该名称,例如:
hostname\instancename

好吧,我使用了ODBC连接。看来这正是我最初想要的

为了使用ODBC,我不得不去安装一些文件。按照说明,我想出了以下代码,似乎工作得很好:

Dim conn As OdbcConnection
conn = New OdbcConnection("DSN=SignInspection")
Dim mystring as String = "SELECT * FROM list_domain"
Dim cmd As OdbcCommand = New OdbcCommand(mystring, conn)
Dim reader As OdbcDataReader
Dim columnCount As Integer
Dim output As String
Dim data as Object() = New Object(10) {}
conn.Open()
MsgBox("Connected!")
reader = cmd.ExecuteReader()
While reader.Read()
    columnCount = reader.GetValues(data)
    output = ""
    For i As Integer = 0 To columnCount - 1
        output = output & " " & data(i).ToString()
    Next
    Debug.WriteLine(output)
End While
conn.Close()
当然我会把它清理干净,但我想也许有人最终会寻找相同的解决方案,也许他们会在花太多时间之前看到我的代码


ed.columsCount->columCount

您可能需要查看一下,以便更容易连接并支持多个底层数据存储


非常成功!=)

+1在您第一次外出时正确关闭最后一个区块中的连接。您会惊讶于有多少人出错。这非常有帮助…我可能应该将该链接添加到书签中!乍一看,这些看起来是非常好的资源,与我在本项目中的计划一致。谢谢!谢谢您的留言g我知道!我很高兴我能做些改变并帮助你!=)起初我很失望-你提供的链接中指向DAAB的d/l链接只适用于Windows Vista或更高版本。然后我使用我的Google fu,遇到了适用于XP的DAAB:“EntLib和DAAB有几个版本。企业库4.1应该可以在Windows XP和VS2008上运行。至于最新的产品版本EntLib 5.0,我还不知道它在与XP和VS2008的兼容性方面是否可以正常工作,但我相信,在没有测试过它的情况下,它可以正常工作。