如何编写正确的SQL连接字符串?

时间:2009-07-22 06:21:54

标签: sql-server vb6 connection-string

使用VB 6和Sql Server 2000。

在我的代码中我使用开放式对话框控件来选择数据库文件,一旦我选择了数据库(Dual_ACS.mdf)文件,它就会出现在文本框中(路径和文件名)

Textbox name = databasetext

我的代码。

Cn.ConnectionString = "Provider=SQLOLEDB.1; Persist Security Info=False;User ID=" & UName & ";Password=" & PWord & ";InitialCatalog=DUAL_ ACS; Data Source=" & databasetext & ""
Cn.Open

但它显示错误。如何编写正确的SQL连接字符串?

需要VB 6代码帮助

3 个答案:

答案 0 :(得分:11)

整个网站专门讨论此主题:http://www.connectionstrings.com/

答案 1 :(得分:7)

如果您确定它是连接字符串,请检查connectionstrings.com - 它具有数百个连接字符串的正确格式。这是一个很好的参考。

你确定它是连接字符串吗?你为什么不告诉我们错误信息是什么?您使用的是哪个版本的SQL Server?

答案 2 :(得分:0)

SQLOLEDB连接中的数据源需要指向SQL Server服务器和实例名称(或IP,但您需要指定端口)。有关详细信息,请参阅here。 您不能直接指向mdf文件。这不是访问。

如果您希望用户能够选择数据源,则应使用ADO内置的通用数据链接对话框。这是从我使用的更大类中提取的示例。您需要添加对“Microsoft OLE DB服务组件1.0类型库”或C:\ Program Files \ Common Files \ system \ ole db \ oledb32.dll的引用。 如果您只需要查看连接字符串的外观,只需创建一个名为test.udl的文件,然后双击它即可。这里使用的接口与此代码中调用的接口相同。

' -----------------------------------------------------------------------------
' Edit
'
' Description:
'    Edits the udl
'
' Arguments:
'
' Dependencies:
'    MSDASC.DataLinks.PromptEdit
'    MSDASC.DataLinks.PromptNew
'
' History:
' 05/23/2003 - WSR : Created
'
Public Function Edit() As Long

Dim dlgEdit       As MSDASC.DataLinks
Dim strConnection As String

   Set dlgEdit = New MSDASC.DataLinks

   ' if there is a connection string
   If Len(m_conSource.ConnectionString) > 0 Then

      ' prompt user to edit the connection
      If Not dlgEdit.PromptEdit(m_conSource) Then

         ' if they didn't edit the connection string
         ' return error code
         Edit = -1

      End If

   ' if there is no connection string
   Else

      ' prompt user to create new connection
      On Error Resume Next
      strConnection = dlgEdit.PromptNew()

      ' if there was a connection string created
      If Len(strConnection) > 0 Then

         ' use it
         m_conSource.ConnectionString = strConnection

      ' if there was no connection string created
      Else

         ' return error code
         Edit = -1

      End If

   End If

   Set dlgEdit = Nothing

End Function
' -----------------------------------------------------------------------------