![](/img/trans.png)
[英]How do I connect to SQL Server 2000, using vb.net 4.0 i get an exception
[英]How do I connect to SQL Server with VB?
我正在嘗試從VB連接到SQL服務器。 跨越網絡的SQL服務器使用我的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
查看connectionstrings.com的樣品。 看起來在你的python示例中,你是通過ODBC訪問數據庫。
您使用的字符串是與內置的.NET SQL Server數據庫提供程序連接,因此您需要使用ODBC連接字符串或將數據源更改為實際的服務器名稱(如果沒有其他實例)或servername / instance name。
您正在使用ODBC DSN作為SqlClient服務器名稱。 這不會起作用。 您必須使用SqlClient連接字符串,對於SqlClient,DataSource屬性是服務器名稱或SQL Native Client服務器別名(與ODBC DSN不同)。
將signinspection
替換為SQL Server主機的實際名稱。 如果是命名實例或偵聽非默認端口,則還必須指定,例如: hostname\\instancename
確定您的服務器和數據庫具有相同的名稱?
這里有一個鏈接,允許您生成連接字符串並對其進行測試
http://blogs.msdn.com/dhejo_vanissery/archive/2007/09/07/One-minute-Connection-string.aspx 。
好吧,我繼續使用ODBC連接。 看起來這就是我首先想要的東西。
為了使用ODBC,我必須訪問http://support.microsoft.com/kb/310985並安裝一些文件。 按照指示,我想出了以下代碼似乎工作得很好:
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()
當然我會清理它很多,但我想也許有人會最終尋找相同的解決方案,也許他們會在花費太多時間之前看到我的代碼。
編輯。 columsCount - > columCount
您可能需要查看Microsoft Enterprise Library
Data Access Application Block
,以便更輕松地連接和支持多個基礎數據存儲。
好成功! =)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.