数据库连接字符串,放在这里方便自己查找

This page contains sample ADO connection strings for ODBC DSN / DSN-Less,
OLE DB Providers, Remote Data Services (RDS), MS Remote, MS DataShape.

Also included are ADO.NET connection strings for each .NET Managed Provider
(SQLClient, OLEDB, and ODBC).

These sample connection strings are compiled
by Carl Prothman, a Microsoft Visual Basic MVP
Enjoy!

 
Table of Contents
ODBC DSN Connections DSN
File DSN

ODBC DSN-Less Connections  ODBC Driver for AS/400
ODBC Driver for Access
ODBC Driver for dBASE
ODBC Driver for Excel
ODBC Driver for MySQL
ODBC Driver for Oracle
ODBC Driver for Paradox
ODBC Driver for SQL Server
ODBC Driver for Sybase
ODBC Driver for Sybase SQL Anywhere
ODBC Driver for Text
ODBC Driver for Teradata
ODBC Driver for Visual FoxPro

OLE DB Data Link Connections Data Link File (UDL)

OLE DB Data Provider Connections  OLE DB Provider for AS/400
OLE DB Provider for Active Directory Service
OLE DB Provider for DB2
OLD DB Provider for Internet Publishing
OLE DB Provider for Index Server
OLE DB Provider for Microsoft Jet
OLE DB Provider for ODBC Databases
OLE DB Provider for Oracle (From Microsoft)
OLE DB Provider for Oracle (From Oracle)
OLE DB Provider for Simple Provider
OLE DB Provider for SQL Server

Remote Data Service (RDS) Connections RDS Data Control - Connect Property
RDS Data Control - URL Property

ADO URL Connections ADO Recordset

MS Remote Provider Connections MS Remote - Access (Jet)
MS Remote - SQL Server

Data Shape Provider Connections  MS DataShape - SQL Server

.NET Managed Provider Connections SQL Client .NET Managed Provider (System.Data.SqlClient)
OLE DB .NET Managed Provider (System.Data.OleDb)
ODBC .NET Managed Provider (System.Data.ODBC)

ODBC DSN Connections
Using an ODBC DSN (Data Source Name) is a two step process.

1) You must first create the DSN via the "ODBC Data Source Administrator" program
found in your computer's Control Panel (or Administrative Tools menu in Windows 2000).
Make sure to create a SYSTEM DSN (not a USER DSN) when using ASP.
Note: You can also create the DSN via VB code.

2) Then use the following connection string - with your own DSN name of course.  ;-)

ODBC - DSN
 
oConn.Open "DSN=AdvWorks;" & _
          "Uid=Admin;" & _
          "Pwd=;

You can also create and use a File DSN. Then use the following ADO Connection string:

ODBC - File DSN
 
oConn.Open "FILEDSN=c:/somepath/mydb.dsn;" & _
          "Uid=Admin;" & _
          "Pwd=;"

For more information, see: About ODBC data sources and
How to Use File DSNs and DSN-less Connections

Note: The problem with DSN is that Users can (and will) modify them (or delete by mistake),
then your program won't work so well... So it's better to use a DSN-Less or OLE DB Provider
connection string with a Trusted Connection if possible!

ODBC DSN-Less Connections
ODBC Driver for AS/400
 
oConn.Open "Driver={Client Access ODBC Driver (32-bit)};" & _
          "System=myAS400;" & _
          "Uid=myUsername;" & _
          "Pwd=myPassword;"

For more information, see:  A Fast Path to AS/400 Client/Server

ODBC Driver for Access
 
For Standard Security:

oConn.Open "Driver={Microsoft Access Driver (*.mdb)};" & _
          "Dbq=c:/somepath/mydb.mdb;" & _
          "Uid=Admin;" & _
          "Pwd=;"

If you are using a Workgroup (System database):

oConn.Open "Driver={Microsoft Access Driver (*.mdb)};" & _
          "Dbq=c:/somepath/mydb.mdb;" & _
          "SystemDB=c:/somepath/mydb.mdw;", _
          "admin", ""

If MDB is located on a network share:

oConn.Open "Driver={Microsoft Access Driver (*.mdb)};" & _
          "Dbq=//myServer/myShare/myPath/myDb.mdb;"

For more information, see: Microsoft Access Driver Programming Considerations

ODBC Driver for dBASE
 
oConn.Open "Driver={Microsoft dBASE Driver (*.dbf)};" & _
         "DriverID=277;" & _
         "Dbq=c:/somepath;"

Note: Specify the filename in the SQL statement. For example:
     oRs.Open "Select * From user.dbf", oConn, , ,adCmdText

Note: MDAC 2.1 (or greater) requires the Borland Database Engine (BDE) to update dBase DBF files. (Q238431).

For more information, see: dBASE Driver Programming Considerations

ODBC Driver for Excel
 
oConn.Open "Driver={Microsoft Excel Driver (*.xls)};" & _
          "DriverId=790;" & _
          "Dbq=c:/somepath/mySpreadsheet.xls;" & _
          "DefaultDir=c:/somepath;"

For more information, see: Microsoft Excel Driver Programming Considerations

ODBC Driver for MySQL (via MyODBC)
 
To connect to a local database

oConn.Open "Driver={mySQL};" & _
          "Server=MyServerName;" & _
          "Option=16834;" & _
          "Database=mydb;"

To connect to a remote database

oConn.Open "Driver={mySQL};" & _
          "Server=db1.database.com;" & _
          "Port=3306;" & _
          "Option=131072;" & _
          "Stmt=;" & _
          "Database=mydb;" & _
          "Uid=myUsername;" & _
          "Pwd=myPassword;"

For more information, see: Programs Known to Work with MyODBC

ODBC Driver for Oracle
 
For the current Oracle ODBC Driver from Microsoft:

oConn.Open "Driver={Microsoft ODBC for Oracle};" & _
          "Server=OracleServer.world;" & _
          "Uid=myUsername;" & _
          "Pwd=myPassword;"

For the older Oracle ODBC Driver from Microsoft:

oConn.Open "Driver={Microsoft ODBC Driver for Oracle};" & _
          "ConnectString=OracleServer.world;" & _
          "Uid=myUsername;" & _
          "Pwd=myPassword;"

For more information, see: Connection String Format and Attributes

ODBC Driver for Paradox
 
oConn.Open "Driver={Microsoft Paradox Driver (*.db)};" & _
          "DriverID=538;" & _
          "Fil=Paradox 5.X;" & _
          "DefaultDir=c:/dbpath/;" & _
          "Dbq=c:/dbpath/;" & _
          "CollatingSequence=ASCII;"

Note: MDAC 2.1 (or greater) requires the Borland Database Engine (BDE) to update Paradox ISAM fDBF files. (Q230126).

For more information, see: Paradox Driver Programming Considerations

ODBC Driver for SQL Server
 
For Standard Security:

oConn.Open "Driver={SQL Server};" & _
          "Server=MyServerName;" & _
         "Database=myDatabaseName;" & _
         "Uid=myUsername;" & _
          "Pwd=myPassword;"

For Trusted Connection security:

oConn.Open "Driver={SQL Server};" & _
          "Server=MyServerName;" & _
          "Database=myDatabaseName;" & _
          "Uid=;" & _
          "Pwd=;"

' or

oConn.Open "Driver={SQL Server};" & _
          "Server=MyServerName;" & _
          "Database=myDatabaseName;" & _
          "Trusted_Connection=yes;"

To Prompt user for username and password

oConn.Properties("Prompt") = adPromptAlways
oConn.Open "Driver={SQL Server};" & _
          "Server=MyServerName;" & _
          "DataBase=myDatabaseName;"
  

For more information, see: SQLDriverConnect (ODBC)

ODBC Driver for Sybase
 
If using the Sybase System 11 ODBC Driver:

oConn.Open "Driver={SYBASE SYSTEM 11};" & _
          "Srvr=myServerName;" & _
         "Uid=myUsername;" & _
          "Pwd=myPassword;"

If using the Intersolv 3.10 Sybase ODBC Driver:

oConn.Open "Driver={INTERSOLV 3.10 32-BIT Sybase};" & _
          "Srvr=myServerName;" & _
         "Uid=myUsername;" & _
          "Pwd=myPassword;"

For more information, see: Sybase System 10 ODBC Driver Reference Guide

ODBC Driver for Sybase SQL Anywhere
 
oConn.Open "ODBC; Driver=Sybase SQL Anywhere 5.0;" & _
          "DefaultDir=c:/dbpath/;" & _
          "Dbf=c:/sqlany50/mydb.db;" & _
         "Uid=myUsername;" & _
          "Pwd=myPassword;"
          "Dsn="""";"

Note: Including the DSN tag with a null string is absolutely critical or else you get the dreaded -7778 error.

For more information, see: Sybase SQL Anywhere User Guide

ODBC Driver for Teradata
 
oConn.Open "Provider=Teradata;" & _
          "DBCName=MyDbcName;" & _
          "Database=MyDatabaseName;" & _
          "Uid=myUsername;" & _
          "Pwd=myPassword;"

For more information, see Teradata ODBC Driver

ODBC Driver for Text
 
oConn.Open "Driver={Microsoft Text Driver (*.txt; *.csv)};" & _
          "Dbq=c:/somepath/;" & _
          "Extensions=asc,csv,tab,txt;" & _
          "Persist Security Info=False"

Note: Specify the filename in the SQL statement. For example:

oRs.Open "Select * From customer.csv", _
        oConn, adOpenStatic, adLockReadOnly, adCmdText


For more information, see: Text File Driver Programming Considerations

ODBC Driver for Visual FoxPro
 
With a database container:

oConn.Open "Driver={Microsoft Visual FoxPro Driver};" & _
          "SourceType=DBC;" & _
          "SourceDB=c:/somepath/mySourceDb.dbc;" & _
          "Exclusive=No;"

Without a database container (Free Table Directory):

oConn.Open "Driver={Microsoft Visual FoxPro Driver};" & _
          "SourceType=DBF;" & _
          "SourceDB=c:/somepath/mySourceDbFolder;" & _
          "Exclusive=No;"

For more information, see: Visual FoxPro ODBC Driver and Q165492

OLE DB Data Link Connections
Data Link File (UDL)
 
For Absolute Path:

oConn.Open "File Name=c:/somepath/myDatabaseName.udl;"

For Relative Path:

oConn.Open "File Name=myDatabaseName.udl;"
 

For more information, see: HOWTO: Use Data Link Files with ADO

Note: Windows 2000 no longer contains the "New | Microsoft Data Link" menu 
anymore. You can add the Data Link menu back in the menu list by running the
"C:/Program Files/Common Files/System/Ole DB/newudl.reg" reg file,
then right-click on the desktop and select "New | Microsoft Data Link" menu. 
Or you can also create a Data Link file by creating a text file and change it's
file extension to ".udl", then double-click the file.

OLE DB Provider Connections
OLE DB Provider for AS/400
 
oConn.Open "Provider=IBMDA400;" & _
          "Data source=myAS400;"
          "User Id=myUsername;" & _
          "Password=myPassword;"

For more information, see:  A Fast Path to AS/400 Client/Server

OLE DB Provider for Active Directory Service
 
oConn.Open "Provider=ADSDSOObject;" & _
          "User Id=myUsername;" & _
          "Password=myPassword;"
 

For more information, see: Microsoft OLE DB Provider for Microsoft Active Directory Service

OLE DB Provider for DB2
 
oConn.Open = "Provider=DB2OLEDB;" &
           "Network Transport Library=TCPIP;" &
           "Network Address=MyServer;" & _
           "Package Collection=MyPackage;" &
           "Host CCSID=1142"
           "Initial Catalog=MyDB;" &
           "User ID=MyUsername;" & _
           "Password=MyPassword;"

For more information, see: OLE DB Provider for DB2
and INF: Configuring Data Sources for the Microsoft OLE DB Provider for DB2

OLE DB Provider for Index Server
 
oConn.Open "Provider=msidxs;" & _
          "Data source=MyCatalog;"
 

For more information, see: Microsoft OLE DB Provider for Microsoft Indexing Service

OLE DB Provider for Internet Publishing
 
oConn.Open "Provider=MSDAIPP.DSO;" & _
      "Data Source=http://mywebsite/myDir;" & _
      "User Id=myUsername;" & _
      "Password=myPassword;"
 

For more information, see: Microsoft OLE DB Provider for Internet Publishing and Q245359

OLE DB Provider for Microsoft Jet
 
For standard security:

oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
          "Data Source=c:/somepath/myDb.mdb;" & _
          "User Id=admin;" & _
          "Password=;"

If using a Workgroup (System Database):

oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
          "Data Source=c:/somepath/mydb.mdb;" & _
          "Jet OLEDB:System Database=MySystem.mdw;", _
          "admin", ""

Note, remember to convert both the MDB and the MDW to the 4.0 database format when using the 4.0 OLE DB Provider.

If MDB has a database password:

oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
          "Data Source=c:/somepath/mydb.mdb;" & _
          "Jet OLEDB:Database Password=MyDbPassword;", _
          "admin", ""

If MDB is located on a network share:

oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
          "Data Source=//myServer/myShare/myPath/myDb.mdb;

If want to open up the Access database exclusively:

oConn.Mode = adModeShareExclusive
oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
          "Data Source=c:/somepath/myDb.mdb;" & _
          "User Id=admin;" & _
          "Password=;"


For more information, see: OLE DB Provider for Microsoft Jet, Q191754, Q225048, Q239114, and Q271908

You can also open an Excel Spreadsheet using the "OLE DB Provider for Microsoft Jet"

oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
          "Data Source=c:/somepath/myExcelSpreadsheet.xls;" & _
          "Extended Properties=""Excel 8.0;HDR=Yes;"";"

Where "HDR=Yes" means that there is a header row in the cell range
(or named range), so the provider will not include the first row of the
selection into the recordset. If "HDR=No", then the provider will include
the first row of the cell range (or named ranged) into the recordset.

For more information, see: Q278973

You can also open a Text File using the "OLE DB Provider for Microsoft Jet"

oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
          "Data Source=c:/somepath/;" & _
          "Extended Properties=""text;HDR=Yes;FMT=Delimited;"";"

' Then open a recordset based on a select on the actual file
oRs.Open "Select * From MyTextFile.txt", oConn, adOpenStatic, adLockReadOnly, adCmdText

For more information, see: Q262537

OLE DB Provider for ODBC Databases
 
For Access (Jet):

oConn.Open "Provider=MSDASQL;" & _
          "Driver={Microsoft Access Driver (*.mdb)};" & _
          "Dbq=c:/somepath/mydb.mdb;" & _
          "Uid=myUsername;" & _
          "Pwd=myPassword;"

For SQL Server:

oConn.Open "Provider=MSDASQL;" & _
          "Driver={SQL Server};" & _
          "Server=myServerName;" & _
          "Database=myDatabaseName;" & _
          "Uid=myUsername;" & _
          "Pwd=myPassword;"

For more information, see: Microsoft OLE DB Provider for ODBC

OLE DB Provider for Oracle (from Microsoft)
 
oConn.Open "Provider=msdaora;" & _
          "Data Source=MyOracleDB;" & _
          "User Id=myUsername;" & _
          "Password=myPassword;"

For more information, see: Microsoft OLE DB Provider for Oracle

OLE DB Provider for Oracle (from Oracle)
 
For Standard Security:

oConn.Open "Provider=OraOLEDB.Oracle;" & _
          "Data Source=MyOracleDB;" & _
          "User Id=myUsername;" & _
          "Password=myPassword;"

For a Trusted Connection:

oConn.Open "Provider=OraOLEDB.Oracle;" & _
          "Data Source=MyOracleDB;" & _
          "User Id=/;" & _
          "Password=;"
' Or

oConn.Open "Provider=OraOLEDB.Oracle;" & _
          "Data Source=MyOracleDB;" & _
          "OSAuthent=1;"
 

Note: "Data Source=" must be set to the appropriate Net8 name which is known to the naming method in use. For example, for Local Naming, it is the alias in the tnsnames.ora file; for Oracle Names, it is the Net8 Service Name.

For more information, see: Connecting to an Oracle Database
(Note, if you get a Logon dialog, then click Cancel, then perform a one-time free signup with Oracle's TechNet system)

OLE DB Provider for Simple Provider
 
The Microsoft OLE DB Simple Provider (OSP) allows ADO to access any data for which a provider has
been written using the OLE DB Simple Provider Toolkit. Simple providers are intended to access data
sources that require only fundamental OLE DB support, such as in-memory arrays or XML documents.

OSP in MDAC 2.6 has been enhanced to support opening hierarchical ADO Recordsets over arbitrary
XML files. These XML files may contain the ADO XML persistence schema, but it is not required. This
has been implemented by connecting the OSP to the MSXML2.DLL, therefore MSXML2.DLL or newer is
required.

oConn.Open "Provider=MSDAOSP;" & _
          "Data Source=MSXML2.DSOControl.2.6;"

oRS.Open "http://WebServer/VirtualRoot/MyXMLFile.xml", oConn


For more information, see: Microsoft OLE DB Simple Provider

OLE DB Provider for SQL Server
 
For Standard Security:

oConn.Open "Provider=sqloledb;" & _
          "Data Source=myServerName;" & _
          "Initial Catalog=myDatabaseName;" & _
          "User Id=myUsername;" & _
          "Password=myPassword;"

For a Trusted Connection:

oConn.Open "Provider=sqloledb;" & _
          "Data Source=myServerName;" & _
          "Initial Catalog=myDatabaseName;" & _
          "Integrated Security=SSPI;"

To connect to a "Named Instance" (SQL Server 2000)

oConn.Open "Provider=sqloledb;" & _
          "Data Source=myServerName/Inst2;" & _
          "Initial Catalog=myDatabaseName;" & _
          "User Id=myUsername;" & _
          "Password=myPassword;"

To Prompt user for username and password:

oConn.Provider = "sqloledb"
oConn.Properties("Prompt") = adPromptAlways
oConn.Open "Data Source=myServerName;" & _
          "Initial Catalog=myDatabaseName;"

To connect via an IP address:

oConn.Open "Provider=sqloledb;" & _
          "Data Source=xxx.xxx.xxx.xxx,1433;" & _
          "Network Library=DBMSSOCN;" & _
          "Initial Catalog=myDatabaseName;" & _
          "User ID=myUsername;" & _
          "Password=myPassword;"

Note:
- xxx.xxx.xxx.xxx is an IP address
- "Network Library=DBMSSOCN" tells OLE DB to use TCP/IP rather than Named Pipes (Q238949)
- 1433 is the default port number for SQL Server
- You can also add "Encrypt=yes" for encryption

For more information, see: Microsoft OLE DB Provider for SQL Server

Remote Data Service (RDS) Connections
The following examples show how to connect to a remote database using the RDS Data Control.
When using the RDS DataControl's Server/SQL/Connect properties, the RDS DataControl uses the
RDS DataFactory on the remote server. If you use the RDS DataControl's URL property,
then the RDS DataFactory is not used at all.

WARNING: The RDS DataFactory can be a major security hole if not setup and configured correctly!
For more information, see RDS FAQ #24

RDS DataControl - Connect Property
 
With the RDS default handler disabled (not recommend due to security risks):

With oRdc
  .Server = "http://carl2"
  .Sql = "Select * From Authors Where State = 'CA'"
  .Connect = "Provider=sqloledb;" & _
           "Data Source=(local);" & _
           "Initial Catalog=pubs;" & _
           "User Id=sa;" & _
           "Password=;"
  .Refresh
End With

With the RDS default handler enabled (recommend):

With oRdc
  .Server = "http://carl2"
  .Handler = "MSDFMAP.Handler"
  .Connect = "Data Source=MyConnectTag;"
  .Sql = "MySQLTag(""CA"")"
  .Refresh
End With

The corresponding CONNECT and SQL sections in the default handler /WINNT/MSDFMAP.INI file would be:

[connect MyConnectTag]
Access = ReadWrite
Connect = "Provider=sqloledb;Data Source=(local);Initial Catalog=pubs;User Id=sa;Password=;"

[sql MySQLTag]
Sql = "Select * From Authors Where State = '?'"

For more information about the RDS Default Handler, see:
Q243245, Q230680, and RDS Customization Handler Microsoft articles

RDS DataControl - URL Property
 
To get records from a remote database:

With oRdc
  .URL = "http://carlp0/Authors_GetByState.asp?state=CA"
  .Refresh
End With

To save, set the URL property to an ASP web page:

With oRdc
  .URL = "http://carlp0/rdsdatacontrol/Authors_Save.asp"
  .SubmitChanges
End With

For more information, see: RDS URL Property

ADO URL Connections
ADO 2.5+ allows you to open up a Recordset based on XML returned from an ASP file over HTTP. 
This feature doesn't use RDS at all.

ADO Recordset
 
To get records from a remote database:

oRs.Open "http://carlp0/Authors_GetByState.asp?state=CA", , _
                      adOpenStatic, adLockBatchOptimistic

To save changes, you must use the MSXML's XMLHTTP object to POST back the updated XML. 
The Recordset's Update and UpdateBatch methods will not work in this case.

' Save Recordset into Stream
Set oStm = New ADODB.Stream
oRs.Save oStm, adPersistXML

' Use MSXML's XMLHTTP object to open ASP and post a XML stream
Set oXMLHTTP = New MSXML2.XMLHTTP30
oXMLHTTP.Open "POST", "http://carlp0/Authors_Save.asp", False
oXMLHTTP.Send oStm.ReadText

' If an error occurred
If oXMLHTTP.Status = 500 Then
  Debug.Print oXMLHTTP.statusText
End If

For more information, see: ADO Recordset's Open Method

MS Remote Provider Connections
The following connections strings use Microsoft's remote provider (MS Remote). The MS Remote
provider tells ADO to communicate with the remote server (via the RDS DataFactory) and to use
the remote provider that is installed on the remote server.

WARNING: The RDS DataFactory can be a major security hole if not setup and configured correctly! 
For more information, see RDS FAQ #24
  

MS Remote - Access (Jet)
 
If you want to use an ODBC DSN on the remote machine:

oConn.Open "Provider=MS Remote;" & _
          "Remote Server=http://myServerName;" & _
          "Remote Provider=MSDASQL;" & _
          "DSN=AdvWorks;" & _
          "Uid=myUsername;" & _
          "Pwd=myPassword;"

If you want to use an OLE DB Provider on the remote machine:

oConn.Open "Provider=MS Remote;" & _
          "Remote Server=http://myServerName;" & _
          "Remote Provider=Microsoft.Jet.OLEDB.4.0;" & _
          "Data Source=c:/somepath/mydb.mdb;", _
          "admin", ""

If you want to use an OLE DB Provider on the remote machine (via RDS DataFactory Default Handler):

oConn.Open "Provider=MS Remote;" & _
          "Remote Server=http://myServerName;" & _
          "Handler=MSDFMAP.Handler;" & _
          "Data Source=MyAdvworksConn;"

The corresponding entry in the /winnt/Msdfmap.ini file would be:

[connect MyAdvworksConn]
Access = ReadWrite
Connect = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
        "Data Source=mydb.mdb;" & _
        "User Id=admin;" & _
        "Password=;"
 

MS Remote - SQL Server
 
If you want to use an ODBC DSN on the remote machine:

oConn.Open "Provider=MS Remote;" & _
          "Remote Server=http://myServerName;" & _
          "Remote Provider=MSDASQL;" & _
          "DSN=myDatabaseName;" & _
          "Uid=myUsername;" & _
          "Pwd=myPassword;"

If you want to use an OLE DB Provider on the remote machine:

oConn.Open "Provider=MS Remote;" & _
          "Remote Server=http://myServerName;" & _
          "Remote Provider=SQLOLEDB;" & _
         "Data Source=myServerName;" & _
         "Initial Catalog=myDatabaseName;" & _
         "User ID=myUsername;" & _
          "Password=myPassword;"

If you want to use an OLE DB Provider on the remote machine (via RDS DataFactory Default Handler):

oConn.Open "Provider=MS Remote;" & _
          "Remote Server=http://myServerName;" & _
          "Handler=MSDFMAP.Handler;" & _
          "Data Source=MyPubsConn;"

The corresponding entry in the /winnt/Msdfmap.ini file would be:

[connect MyPubsConn]
Access = ReadWrite
Connect = "Provider=SQLOLEDB;" & _
        "Data Source=myServerName;" & _
        "Initial Catalog=myDatabaseName;" & _
        "User ID=myUsername;" & _
        "Password=myPassword;"

For more information, see: Microsoft OLE DB Remoting Provider  and Q240838

Data Shape Provider Connections
MS DataShape - SQL Server
 
oConn.Open "Provider=MSDataShape;" & _
          "Data Provider=SQLOLEDB;" & _
          "Data Source=mySQLServerName;" & _
          "Initial Catalog=myDatabase;" & _
          "User ID=myUsername;" & _
          "Password=myPassword;"

Then use a Shape command with SQL strings:
sSQL = "SHAPE {select * from authors} " & _
      "APPEND ({select * from titleauthor} AS chapter " & _
      "RELATE au_id TO au_id)"

Or use a Shape command that calls Stored Procedures:
sSQL = "SHAPE {exec spAuthors_LoadAll} " & _
      "APPEND ({exec spTitleAuthor_LoadAll} AS chapter " & _
      "RELATE au_id TO au_id)"

For more information, see: Microsoft Data Shaping Service for OLE DB and Q288409

.NET Managed Provider Connections
SQL Client .NET Managed Provider (System.Data.SqlClient)
 
The SQL Client .NET Managed Provide allows you to connect to a Microsoft SQL Server 7.0
or 2000 database. For Microsoft SQL Server 6.0 or earlier, use the OLE DB .NET Data Provider
with the "SQL Server OLE DB Provider" (SQLOLEDB).

Dim oSQLConnection As SqlClient.SqlConnection
Dim sConnString As String

sConnString = "Data Source=(local);" & _
           "Initial Catalog=NorthWind;" & _
           "Integrated Security=SSPI;" & _
           "Pooling=True;" & _
           "Min Pool Size=10;" & _
           "Max Pool Size=50;" & _
           "Connection Lifetime=30;" & _
           "Connection Reset=True;" & _
           "Enlist=True;"
oSQLConnection = New SqlClient.SqlConnection(sConnString)
oSQLConnection.Open()

For more information, see: System.Data.SQL Namespace and .NET Data Providers
Note: 'SQL' namespace got renamed to 'SQLClient'

OLE DB .NET Managed Provider (System.Data.OleDb)
 
The OLE DB .NET Data Provider uses native OLE DB through COM interop to enable data access. 
To use the OLE DB .NET Data Provider, you must also use an OLE DB provider (e.g. SQLOLEDB,
MSDAORA, or Microsoft.JET.OLEDB.4.0).

For SQL Server OLE DB Provider (for SQL Server 6.0 or earlier)

Dim oOleDbConnection As OleDb.OleDbConnection
Dim sConnString As String

sConnString = "Provider=sqloledb;" & _
           "Data Source=myServerName;" & _
           "Initial Catalog=myDatabaseName;" & _
           "User Id=myUsername;" & _
          "Password=myPassword;"
oOleDbConnection = New OleDb.OleDbConnection(sConnString)
oOleDbConnection.Open()

For JET OLE DB Provider:

Dim oOleDbConnection As OleDb.OleDbConnection
Dim sConnString As String

sConnString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
           "Data Source=C:/Work/nwind.mdb;" & _
           "User ID=Admin;" & _
           "Password="";"
oOleDbConnection = New OleDb.OleDbConnection(sConnString)
oOleDbConnection.Open()

For more information, see: System.Data.OleDb Namespace and .NET Data Providers
Note: 'ADO' namespace got renamed to 'OleDb'

ODBC .NET Managed Provider (System.Data.ODBC)
 
The ODBC .NET Data Provider is an add-on component to the .NET Framework SDK Beta 2.
It provides access to native ODBC drivers the same way the OLE DB .NET Data Provider
provides access to native OLE DB providers.

For SQL Server ODBC Driver:

Dim oODBCConnection As Odbc.OdbcConnection
Dim sConnString As String

' Create and open a new ODBC Connection
sConnString = "Driver={SQL Server};" & _
           "Server=MySQLServerName;" & _
           "Database=MyDatabaseName;" & _
           "Uid=MyUsername;" & _
           "Pwd=MyPassword;"

oODBCConnection = New Odbc.OdbcConnection(sConnString)
oODBCConnection.Open()

For Oracle ODBC Driver:

Dim oODBCConnection As Odbc.OdbcConnection
Dim sConnString As String

' Create and open a new ODBC Connection
sConnString = "Driver={Microsoft ODBC for Oracle};" & _
          "Server=OracleServer.world;" & _
          "Uid=myUsername;" & _
          "Pwd=myPassword;"

oODBCConnection = New Odbc.OdbcConnection(sConnString)
oODBCConnection.Open()

For Access (JET) ODBC Driver:

Dim oODBCConnection As Odbc.OdbcConnection
Dim sConnString As String

' Create and open a new ODBC Connection
sConnString = "Driver={Microsoft Access Driver (*.mdb)};" & _
          "Dbq=c:/somepath/mydb.mdb;" & _
          "Uid=Admin;" & _
          "Pwd=;"

oODBCConnection = New Odbc.OdbcConnection(sConnString)
oODBCConnection.Open()

For all other ODBC Drivers:

Dim oODBCConnection As Odbc.OdbcConnection
Dim sConnString As String

' Create and open a new ODBC Connection
sConnString = "Dsn=myDsn;" & _
           "Uid=myUsername;" & _
           "Pwd=myPassword;"

oODBCConnection = New Odbc.OdbcConnection(sConnString)
oODBCConnection.Open()

For more information, see: Download Center

<think>我们讨论的是在Web.config文件中没有连接字符串的情况下,如何解决将连接字符串中的`Encrypt=true`改为`Encrypt=false`后出现`System.ArgumentException: 项encrypt的值无效`错误。 根据之前的讨论,出现此错误的原因通常包括: 1. 连接字符串语法错误(如多余空格、缺少分号等) 2. 数据库驱动版本过旧,不支持`Encrypt`参数 3. 参数冲突(如`Encrypt`和`TrustServerCertificate`的配置冲突) 4. .NET框架版本过低(低于4.6)无法解析`Encrypt`参数 但是现在用户特别指出:Web.config文件中没有连接字符串。这意味着连接字符串可能存储在代码中、其他配置文件(如appsettings.json)或通过其他方式(如环境变量)设置。 因此,我们需要考虑连接字符串的来源可能不是Web.config,而是其他地方。解决步骤: 1. **确认连接字符串的位置**: 即使Web.config中没有连接字符串连接字符串可能存在于: - 代码中(硬编码) - 其他配置文件(如appsettings.json,在ASP.NET Core中常见) - 环境变量 - 其他配置源(如Azure应用程序设置) 2. **查找连接字符串**: - 在项目中搜索包含连接字符串的文件(如`.cs`文件、`appsettings.json`等)。 - 检查代码中是否有类似`new SqlConnection("...")`或`Configuration.GetConnectionString("...")`的地方。 3. **修改连接字符串**: 一旦找到连接字符串,按照以下步骤修改: - 确保将`Encrypt=true`改为`Encrypt=false`,并检查拼写和格式。 - 同时考虑添加`TrustServerCertificate=true`(如果使用自签名证书且不需要验证)。 4. **检查驱动和框架版本**: - 如果连接字符串在代码中,确保项目使用的数据库驱动(如System.Data.SqlClient或Microsoft.Data.SqlClient)是最新的,特别是当框架版本较低时。 - 升级到支持`Encrypt`参数的最新驱动。 5. **处理连接字符串不在Web.config中的情况**: - 如果连接字符串在代码中,直接修改代码中的字符串。 - 如果在其他配置文件中(如appsettings.json),修改该文件。 - 如果在环境变量中,修改环境变量的值。 6. **其他注意事项**: - 如果连接字符串是从多个来源构建的,确保修改了正确的部分。 - 在ASP.NET Core中,连接字符串通常放在appsettings.json中,通过IConfiguration注入。 具体步骤: **步骤1:搜索连接字符串** 在项目中全局搜索关键词,如: - "Connection String" - "Server=" - "Data Source=" - "Encrypt=" **步骤2:修改连接字符串** 找到连接字符串后,将其修改为正确的格式。例如: ```csharp // 修改前 string connStr = "Server=myserver;Database=mydb;User Id=myuser;Password=mypassword;Encrypt=true"; // 修改后 string connStr = "Server=myserver;Database=mydb;User Id=myuser;Password=mypassword;Encrypt=false"; ``` 或者,如果存在参数冲突,可以添加`TrustServerCertificate`: ```csharp string connStr = "Server=myserver;Database=mydb;User Id=myuser;Password=mypassword;Encrypt=false;TrustServerCertificate=true"; ``` **步骤3:更新驱动和框架** 如果问题仍然存在,考虑更新驱动: - 对于.NET Framework项目,更新`System.Data.SqlClient`或`Microsoft.Data.SqlClient`到最新版本。 - 对于.NET Core项目,更新`Microsoft.Data.SqlClient`。 如果项目框架版本低于.NET Framework 4.6,考虑升级框架。 **步骤4:测试** 运行应用程序,检查错误是否解决。 **步骤5:配置加密(可选)** 如果因为安全原因不能使用`Encrypt=false`,而必须使用加密连接,则需要正确配置证书。但此问题中用户选择关闭加密,因此重点在解决关闭加密时的错误。 由于用户提到Web.config中没有连接字符串,我们还需要注意:在ASP.NET Core中,连接字符串通常不在Web.config中,而是在appsettings.json中。因此,检查appsettings.json文件: 示例appsettings.json: ```json { "ConnectionStrings": { "DefaultConnection": "Server=myserver;Database=mydb;User=sa;Password=123;Encrypt=false" } } ``` 然后通过以下方式获取: ```csharp var connectionString = Configuration.GetConnectionString("DefaultConnection"); ``` 如果连接字符串在appsettings.json中,修改该文件即可。 总结处理步骤: 1. 在项目中全局搜索连接字符串,找到其位置(代码、appsettings.json、环境变量等)。 2.连接字符串中的`Encrypt`参数值改为`false`,并确保格式正确(无多余字符,分号分隔)。 3. 考虑添加`TrustServerCertificate=true`以避免证书验证问题。 4. 更新数据库驱动和框架版本。 5. 重新运行应用程序。 如果以上步骤无法解决问题,请提供更多错误信息(如堆栈跟踪)以便进一步分析。 注意:在修改连接字符串后,如果应用程序使用的是配置文件(如appsettings.json),修改后通常不需要重启服务,因为ASP.NET Core会监控文件更改并重新加载配置[^1]。但对于硬编码在代码中的连接字符串,需要重新编译。 引用说明: [^1]: 在运行时对配置文件的修改不需要重启服务就可以生效(除了特定的节,如`<processModel>`)。当然配置文件是可以扩展的。你可以自定义新配置参数并编写配置节处理程序以对它们进行处理。 相关问题: 1. 如何在ASP.NET Core中管理数据库连接字符串? 2. 如何升级System.Data.SqlClient驱动? 3. 在代码中硬编码连接字符串有哪些安全风险? </think> ### 解决 Web.config 无连接字符串时的 "System.ArgumentException: 项 encrypt 的值无效" 错误 当 Web.config 中**不存在连接字符串**时出现此错误,说明连接字符串可能存储在代码、环境变量或其他配置源中。以下是具体解决方案: --- #### 1. **定位实际连接字符串来源** - 检查代码中的硬编码连接字符串: ```csharp // 可能在代码中直接定义 var connStr = "Server=myserver;Database=mydb;Encrypt=true"; // 查找类似代码 ``` - 检查其他配置文件: - ASP.NET Core 项目:检查 `appsettings.json` ```json { "ConnectionStrings": { "Default": "Server=...;Encrypt=true" } } ``` - 环境变量:通过 `Environment.GetEnvironmentVariable("CONN_STR")` 获取的变量 --- #### 2. **修改连接字符串参数** 找到连接字符串后,进行以下修正: - **语法修正**: ```diff - Encrypt=True; // 错误:首字母大写 + Encrypt=false; // 正确:全小写+分号 ``` - **添加必要参数**: ```bash Encrypt=false;TrustServerCertificate=true // 显式禁用证书验证 ``` --- #### 3. **处理驱动兼容性问题** - **更新驱动**(即使不在 Web.config): ```bash # NuGet 包管理器命令 Update-Package Microsoft.Data.SqlClient # 推荐使用新版 ``` - **降级方案**(旧版驱动): 移除 `Encrypt` 参数(如果驱动不支持): ```csharp // 原始 "Server=myserver;Encrypt=false;..." // 改为 "Server=myserver;..." // 直接删除Encrypt参数 ``` --- #### 4. **框架版本兼容性处理** - **项目目标框架升级**(若版本 < .NET 4.6): ```xml <!-- .csproj 文件修改 --> <TargetFramework>net48</TargetFramework> <!-- 升级到4.8 --> ``` - **配置参数别名**(旧框架适配): ```csharp // 使用旧版参数名 "Server=...;Encrypt=no" // 某些旧驱动支持"no"/"yes" ``` --- #### 5. **调试与验证** - 捕获完整异常信息: ```csharp try { using var conn = new SqlConnection(connStr); conn.Open(); } catch (Exception ex) { // 输出内部异常详情 Console.WriteLine(ex.InnerException?.Message); } ``` - 验证连接字符串: ```csharp var builder = new SqlConnectionStringBuilder(connStr); Console.WriteLine(builder["Encrypt"]); // 检查值是否为false ``` --- ### 关键排查流程图 ```mermaid graph TD A[出现错误] --> B{定位连接字符串} B -->|硬编码| C[修改代码中的连接字符串] B -->|appsettings.json| D[修改JSON配置文件] B -->|环境变量| E[更新环境变量值] C --> F[检查语法:Encrypt=false] D --> F E --> F F --> G{仍报错?} G -->|是| H[更新驱动/框架] G -->|否| I[问题解决] H --> I ``` > ⚠️ **注意**:修改代码或环境变量后需**重新编译/重启应用**生效(不同于 Web.config 的热更新特性[^1])。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值