2014-05-19 122 views
-1

我收到一个错误如下:VB链接SQL服务器的问题

从类型转换“的SqlConnection为键入“串”是无效的。

我的VB编码是:

Dim conn As New SqlConnection 
    Dim cmd As New SqlCommand 
    Dim da As New SqlDataAdapter 
    Dim dt As New DataTable 
    Dim sSQL As String = String.Empty 
    Try 
     conn = New SqlConnection(Get_Constring) 
     conn.Open() 
     cmd.Connection = conn 
     cmd.CommandType = CommandType.Text 
     sSQL = "SELECT * FROM HostTable" 
     If Me.cboSearchBy.Text = "Name" Then 
      sSQL = sSQL & " where HOSTNAME like '%" & Me.txtSearch.Text & "%'" 
     ElseIf Me.cboSearchBy.Text = "Function" Then 
      sSQL = sSQL & " where FUCTION like '%" & Me.txtSearch.Text & "%'" 
     End If 
     cmd.CommandText = sSQL 
     da.SelectCommand = cmd 
     da.Fill(dt) 

     Me.dtgResult.DataSource = dt 
     If dt.Rows.Count = 0 Then 
      MsgBox("No record found!") 
     End If 
Function Get_Constring() 
    If Microsoft.VisualBasic.Right(Application.StartupPath, 1) = "\" Then 
     sConnstring = New SqlConnection("server=192.168.1.111\SQLSERVER;database=Common_DB;User ID=sa;Password=12345678") 
    Else 
     sConnstring = New SqlConnection("server=192.168.1.111\SQLSERVER;database=Common_DB;User ID=sa;Password=12345678") 
    End If 
    Return sConnstring 
End Function 

回答

1

您在New SqlConnection中硬编码的参数是实际的连接字符串。

您可能需要写类似:

sConnstring = "server=192.168.1.111\SQLSERVER;database=Common_DB;User ID=sa;Password=12345678" 
myConnection = New SqlConnection(sConnstring) 

所以你的函数Get_Constring应该只返回字符串,而不是一个完整的连接。

Function Get_Constring() 
If Microsoft.VisualBasic.Right(Application.StartupPath, 1) = "\" Then 
    sConnstring = "server=192.168.1.111\SQLSERVER;database=Common_DB;User ID=sa;Password=12345678" 
Else 
    sConnstring = "server=192.168.1.111\SQLSERVER;database=Common_DB;User ID=sa;Password=12345678" 
End If 
Return sConnstring 

这应该按预期工作。

+0

另外,考虑转入Option Strict - 强烈键入您的返回并显式声明变量。或者使用'Return'server = 192.168.1.111 \ SQLSERVER; database = Common_DB; User ID = sa; Password = 12345678“'完全免除变量。 –

0

从类型 '的SqlConnection' 转换到类型 '串' 是无效的。

此错误消息非常明确。您不能将(新)SqlConnection转换为字符串(sConnstring)。