MySQL 连接方式-----------
MySQL Connector/ODBC 2.50 (MyODBC 2.50)连接方式
本地数据库连接
Driver={mySQL};Server=localhost;Option=16834;Database=myDataBase;
远程数据连接:
Driver={mySQL};Server=myServerAddress;Option=131072;Stmt=;Database=myDataBase; User=myUsername;Password=myPassword;
特殊的TCP/IP端口连接
Driver={mySQL};Server=myServerAddress;Port=3306;Option=131072;Stmt=;Database=myDataBase; User=myUsername;Password=myPassword;
说明:此Driver的默认端口是3306。如果没有在连接字符串中特别指出就是连接Mysql的3306端口。
MySQL Connector/ODBC 3.51 (MyODBC 3.51)连接方式
本地数据库连接
Driver={MySQL ODBC 3.51 Driver};Server=localhost;Database=myDataBase; User=myUsername;Password=myPassword;Option=3;
远程数据连接
Driver={MySQL ODBC 3.51 Driver};Server=data.domain.com;Database=myDataBase;User=myUsername; Password=myPassword;Option=3;
特殊的TCP/IP端口连接
Driver={MySQL ODBC 3.51 Driver};Server=data.domain.com;Port=3306;Database=myDataBase;User=myUsername; Password=myPassword;Option=3;
说明:此Driver的默认端口是3306。如果没有在连接字符串中特别指出就是连接Mysql的3306端口。
特殊字符集的连接
Driver={MySQL ODBC 3.51 Driver};Server=data.domain.com;charset=UTF8;Database=myDataBase;User=myUsername; Password=myPassword;Option=3;
OLE DB, OleDbConnection (.NET)连接方式
标准连接
Provider=MySQLProv;Data Source=mydb;User Id=myUsername;Password=myPassword;
MySQL Connector/Net (.NET)连接方式
标准连接
Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;
默认端口是3306.
特殊的TCP/IP端口连接
Server=myServerAddress;Port=1234;Database=myDataBase;Uid=myUsername;Pwd=myPassword;
命名管道
Server=myServerAddress;Port=-1;Database=myDataBase;Uid=myUsername;Pwd=myPassword;
说明:端口值为-1,说明用命名管道方式连接。此方式只在Windows下有效,在UNIX下用会被忽略。
多服务器连接
用此种方式连接到数据库中,不必担心该使用哪个数据库。
Server=serverAddress1 & serverAddress2 & etc..;Database=myDataBase;Uid=myUsername;Pwd=myPassword;
加密选项
这条活动的SSL连接加密所有客户端和服务器商的数据传输。而且服务器要有一个证书。
Server=myServerAddress;Port=-1;Database=myDataBase;Uid=myUsername;Pwd=myPassword;
这个选项从 Connector/NET5.0.3版开始出现,以前的版本中则没有此功能。
修改默认的命令超时时间
使用这条修改连接的默认命令超时时间。注意:此条不会影响你在单独命令对象上设置的超时时间。 以下是语法格式:
Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;default command timeout=20;
此条只对Connector/NET 5.1.4 及以上的版本有效.
修改连接偿试时间
使用这条修改在终止重试和接收错误的等待时间(以秒为单位) 以下是语法格式:
Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;Connection Timeout=5;
Inactivating prepared statements
Use this one to instruct the provider to ignore any command prepare statements and prevent corruption issues with server side prepared statements. 以下是语法格式:
Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;Ignore Prepare=true;
此选项被加入到Connector/NET的5.0.3版和1.0.9版。
特殊的TCP/IP端口连接
这条语句修改连接的端口。
Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;Port=3306;
默认端口是3306。此参数会被Unix忽略。
特殊网络协议
这条语句修改用哪种协议进行连接。 以下是语法格式:
Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;Protocol=socket;
如果没有特别说明,"socket"是默认的值。"tcp"是与"socket"相同意义的。"pipe"是使用命名管道连接,"unix"是使用unix socket连接,"memory"是使用mySql的共享内存。
特殊字符集的连接
这个语句指出以使种字符串编码发送到服务器上的查询语句。
以下是语法格式:
Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;CharSet=UTF8;
注意:查询结果仍然是以反回数据的格式传送。
修改共享内存名
此语句用来修改用来通信的共享内存名称。 以下是语法格式:
Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;Shared Memory Name=MYSQL;
说明: 此语句只有当连接协议设置为"memory"时才有效。
MySqlConnection (.NET)连接方式
eInfoDesigns.dbProvider 以下是语法格式:
Data Source=myServerAddress;Database=myDataBase;User ID=myUsername;Password=myPassword;Command Logging=false;
SevenObjects MySqlClient (.NET)连接方式
标准连接
Host=myServerAddress;UserName=myUsername;Password=myPassword;Database=myDataBase;
Core Labs MySQLDirect (.NET)连接方式
标准连接
User ID=root;Password=myPassword;Host=localhost;Port=3306;Database=myDataBase; Direct=true;Protocol=TCP;Compress=false;Pooling=true;Min Pool Size=0;Max Pool Size=100;Connection Lifetime=0;
MySQLDriverCS (.NET)连接方式
标准连接
Location=myServerAddress;Data Source=myDataBase;User ID=myUsername;Password=myPassword;Port=3306;Extended Properties="""";
-----------excel----------
ODBC 方式
以下是代码片段:
Driver={Microsoft Excel Driver (*.xls)};DriverId=790;Dbq=C:\MyExcel.xls;DefaultDir=c:\mypath;
SQL语法 "SELECT * FROM [sheet1$]". Excel 工作表名跟一个"$"并且加一个中括号。
OLE DB方式
标准格式
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\MyExcel.xls;Extended Properties="Excel 8.0;HDR=Yes;IMEX=1";
注意 :在字符串中的引号"需要根据你使用的语言转义一些.举例如下
c#, c++ \"
VB6, VBScript ""
xml (web.config etc) "
或者用单引号’。
"HDR=Yes;" 这个参数说明第一行是列名,而不是数据. "HDR=No;"正好与前面的相反。
"IMEX=1;" 告诉driver总是把数据作为text 类型.注意,这选项会影响excel的写访问(sheet write access negative)。
SQL语法 "SELECT * FROM [sheet1$]"。Excel 工作表名跟一个"$"并且加一个中括号。
检查注册表 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel] located registry REG_DWORD "TypeGuessRows". 此项将不会让excel仅读前8行去猜数据列的类型。把这项设为0,让excel检查所有行。这会影响性能。
如果excel文件有密码,你将不能连接成功,即使提供了正确的密码。如果你试一下,你会发现提示“不能解密文件”
--------------access------------------
ODBC
标准连接
Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\mydatabase.mdb;Uid=Admin;Pwd=;
工作组
Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\mydatabase.mdb;SystemDB=C:\mydatabase.mdw;
独享(排他)连接
Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\mydatabase.mdb;Exclusive=1;Uid=admin;Pwd=;
开启管理语句功能
要执行特别的语句如CREATE USER, CREATE GROUP, ADD USER, GRANT, REVOKE 和 DEFAULTS (当执行CREATE TABLE 语句时) 用下面的连接字符串。
Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\mydatabase.mdb;Uid=Admin;Pwd=;ExtendedAnsiSQL=1;
具体的 locale identifier
使用locale identifier可以帮助识别非美语日期
Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\mydatabase.mdb;Locale Identifier=2057;Uid=Admin;Pwd=;
OLE DB, OleDbConnection (.NET)
标准连接
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\mydatabase.mdb;User Id=admin;Password=;
带数据库密码的连接
下面是一个带有密码保护的access 数据库.
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\mydatabase.mdb;Jet OLEDB:Database Password=MyDbPassword;
工作组(system database)
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\mydatabase.mdb;Jet OLEDB:System Database=system.mdw;
带用户名与密码的工作组(system database)
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\mydatabase.mdb;Jet OLEDB:System Database=system.mdw;User ID=myUsername;Password=myPassword;
DataDirectory functionality
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\myDatabase.mdb;User Id=admin;Password=;
-------------------sql server---------------
ODBC方式
标准安全链接语法:
Driver={SQL Server};Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;
信任连接语法:
Driver={SQL Server};Server=myServerAddress;Database=myDataBase;Trusted_Connection=Yes;
若提示用户名和密码,这里有一个小技巧.首先你要设置连接对象的Prompt 属性为adPromptAlways.然后用下面的连接字符串连接数据库. 以下是语法格式:
oConn.Properties("Prompt") = adPromptAlways
Driver={SQL Server};Server=myServerAddress;Database=myDataBase;
OLE DB, OleDbConnection (.NET)
标准安全链接语法:
Provider=sqloledb;Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;
信任连接语法:
Provider=sqloledb;Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI;
用服务器名\实例名来连接一个服务器实例,需要注意很多实例连接参数仅对2000版本有效,以前其他的版本是不可以用的.
连接到sql server实例. 以下是语法格式:
Provider=sqloledb;Data Source=myServerName\theInstanceName;Initial Catalog=myDataBase;Integrated Security=SSPI;
若提示用户名和密码,也需要一点小技巧.首先设置连接对象的Provider属性为sqloledb,接着设置连接对象的Prompt属性为adPromptAlways.最后用连接字符串连接数据库就可以啦.代码如下: 以下是示例代码:
oConn.Provider = "sqloledb"
oConn.Properties("Prompt") = adPromptAlways
Data Source=myServerAddress;Initial Catalog=myDataBase;
通过IP地址连接
Provider=sqloledb;Data Source=190.190.200.100,1433;Network Library=DBMSSOCN;Initial Catalog=myDataBase;User ID=myUsername;Password=myPassword;
DBMSSOCN=TCP/IP.是告诉连接对象用ip连接而不是命名管道的方式.DataSource最后的那个1433端口是SQL server的默认端口(站长注:与sql server2005的不相同)
SqlConnection (.NET)
标准连接语法:
Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;
标准连接语法(另一种):
Server=myServerAddress;Database=myDataBase;User ID=myUsername;Password=myPassword;Trusted_Connection=False;
第二种连接字符串与前一个是效果相同的.之所以包含到这里是为了指出很多连接字符串的关键词有相同的效果.
信任连接语法:
Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI;
信任连接的语法(另一种):
Server=myServerAddress;Database=myDataBase;Trusted_Connection=True;
用服务器名\实例名来连接一个服务器实例,需要注意很多实例连接参数仅对2000版本有效,以前其他的版本是不可以用的. 连接到Sql Server实例:
Server=myServerName\theInstanceName;Database=myDataBase;Trusted_Connection=True;
CE设备的信任连接
通常一个windows CE设置是被验证过并且登陆到域中的,用SSPI或信任/验证过的连接连接数据库用下面的连接字符串: 以下是语法格式:
Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI;User ID=myDomain\myUsername;Password=myPassword;
注意:仅在CE设备上有效.
通过IP地址连接
Data Source=190.190.200.100,1433;Network Library=DBMSSOCN;Initial Catalog=myDataBase;User ID=myUsername;Password=myPassword;
DBMSSOCN=TCP/IP.是告诉连接对象用ip连接而不是命名管道的方式.DataSource最后的那个1433端口是SQL server的默认端口(站长注:与sql server2005的不相同)
特殊的包大小
以下是语法格式:
Server=myServerAddress;Database=myDataBase;User ID=myUsername;Password=myPassword;Trusted_Connection=False;Packet Size=4096;
默认的,微软的.net框架中的SQL Server数据库Provider 设置的默认网络包的大小为8192字节,这可能不是最优的设置 ,你可以试着设置为4096字节.
8192字节可能引发" Failed to reserve contiguous memory" 错误.
Data Shape
以下是语法格式:
Provider=MSDataShape;Data Provider=SQLOLEDB;Data Source=myServerAddress;Initial Catalog=myDataBase;User ID=myUsername;Password=myPassword;
--------------sql server 2005---------
SQL Native Client ODBC Driver
标准安全连接 以下是语法格式:
Driver={SQL Native Client};Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;
你用过sql server 2005 Express么?不要忘记服务器的语法“Servername\SQLEXPRESS”(你要把Servername替换为装有sql server 2005 Express的计算机的名字)
信任连接
Driver={SQL Native Client};Server=myServerAddress;Database=myDataBase;Trusted_Connection=yes;
等效的参数对:"Integrated Security=SSPI"与"Trusted_Connection=yes" 效果相同。
连接到一个SQL Server 实例
这个指明Sql Server 实例的语法中的server参数的值对所有连接Sql Server的字符串相同。
以下是语法格式:
Driver={SQL Native Client};Server=myServerName\theInstanceName;Database=myDataBase;Trusted_Connection=yes;
提示用户名和密码
这个有点麻烦。首先你要设置连接对象的Prompt属性为adPromptAlways,然后用连接字符串连接数据库。
以下是语法格式:
oConn.Properties("Prompt") = adPromptAlways
Driver={SQL Native Client};Server=myServerAddress;Database=myDataBase;
允许多个结果集(Enable Mars (multiple active result sets))
以下是语法格式:
Driver={SQL Native Client};Server=myServerAddress;Database=myDataBase;Trusted_Connection=yes;MARS_Connection=yes;
等效的参数对:"MultipleActiveResultSets=true"与"MARS_Connection=yes" 效果相同。使用Mars功能需要ADO.NET2.0。ADO.NET1.0和1.1不支持此功能。
网络加密传输数据
以下是语法格式:
Driver={SQL Native Client};Server=myServerAddress;Database=myDataBase;Trusted_Connection=yes;Encrypt=yes;
在一个到本地SQL Server Express 实例的连接上附加数据库文件
以下是语法格式:
Driver={SQL Native Client};Server=.\SQLExpress;AttachDbFilename=c:\asd\qwe\mydbfile.mdf; Database=dbname;Trusted_Connection=Yes;
为什么要带上Database参数呢?因为如果有同名的数据库已经被附加上啦,SQL Server将不会重新附加该数据库。他将使用原数据库作为要连接的对象。
在一个到本地SQL Server Express 实例的连接上附加数据库文件(数据文件在数据目录中。)
以下是语法格式:
Driver={SQL Native Client};Server=.\SQLExpress;AttachDbFilename=|DataDirectory|mydbfile.mdf; Database=dbname;Trusted_Connection=Yes;
为什么要带上Database参数呢?因为如果有同名的数据库已经被附加上啦,SQL Server将不会重新附加该数据库。他将使用原数据库作为要连接的对象。
数据库镜像
如果你用Ado.Net或着SQL Native Client 连接到一个镜像的数据库,当一个数据库镜像出错时,你的应用程序应该提供自动切换连接的功能。那么,你应该在连接字符串中指明原始数据库名和镜像数据库名。
以下是语法格式:
Data Source=myServerAddress;Failover Partner=myMirrorServer;Initial Catalog=myDataBase;Integrated Security=True;
当然还有很多连接数据库镜像的连接字符串的写法。这只是一个例子指明 failover功能。你还可以指明其他的连接字符串属性参数。
SQL Native Client OLE DB Provider
标准安全连接 以下是语法格式:
Provider=SQLNCLI;Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;
你用过sql server 2005 Express么?不要忘记服务器的语法“Servername\SQLEXPRESS”(你要把Servername替换为装有sql server 2005 Express的计算机的名字)
信任连接
以下是语法格式:
Provider=SQLNCLI;Server=myServerAddress;Database=myDataBase;Trusted_Connection=yes;
等效的参数对:"Integrated Security=SSPI"与"Trusted_Connection=yes" 效果相同。
连接到一个SQL Server 实例
这个指名Sql Server 实例的语法中的server参数的值对所有连接Sql Server的字符串相同。
以下是语法格式:
Provider=SQLNCLI;Server=myServerName\theInstanceName;Database=myDataBase;Trusted_Connection=yes;
提示用户名和密码
这个有点麻烦。首先你要设置连接对象的Prompt属性为adPromptAlways,然后用连接字符串连接数据库。
以下是语法格式:
oConn.Properties("Prompt") = adPromptAlways
oConn.Open "Provider=SQLNCLI;Server=myServerAddress;DataBase=myDataBase;
允许多个结果集(Enable Mars (multiple active result sets))
以下是语法格式:
Provider=SQLNCLI;Server=myServerAddress;Database=myDataBase;Trusted_Connection=yes;MarsConn=yes;
等效的参数对:"MultipleActiveResultSets=true"与"MARS_Connection=yes" 效果相同。使用Mars功能需要ADO.NET2.0。ADO.NET1.0和1.1不支持此功能。
网络加密传输数据
以下是语法格式:
Provider=SQLNCLI;Server=myServerAddress;Database=myDataBase;Trusted_Connection=yes;Encrypt=yes;
在一个到本地SQL Server Express 实例的连接上附加数据库文件
以下是语法格式:
Provider=SQLNCLI;Server=.\SQLExpress;AttachDbFilename=c:\asd\qwe\mydbfile.mdf; Database=dbname;Trusted_Connection=Yes;
为什么要带上Database参数呢?因为如果有同名的数据库已经被附加上啦,SQL Server将不会重新附加该数据库。他将使用原数据库作为要连接的对象。
在一个到本地SQL Server Express 实例的连接上附加数据库文件(数据文件在数据目录中。)
以下是语法格式:
Provider=SQLNCLI;Server=.\SQLExpress;AttachDbFilename=|DataDirectory|mydbfile.mdf; Database=dbname;Trusted_Connection=Yes;
为什么要带上Database参数呢?因为如果有同名的数据库已经被附加上啦,SQL Server将不会重新附加该数据库。他将使用原数据库作为要连接的对象。
数据库镜像
如果你用Ado.Net或着SQL Native Client 连接到一个镜像的数据库,当一个数据库镜像出错时,你的应用程序应该提供自动切换连接的功能。那么,你应该在连接字符串中指明原始数据库名和镜像数据库名。
以下是语法格式:
Data Source=myServerAddress;Failover Partner=myMirrorServer;Initial Catalog=myDataBase;Integrated Security=True;
当然还有很多连接数据库镜像的连接字符串的写法。这只是一个例子指明 failover功能。你还可以指明其他的连接字符串属性参数。
SqlConnection (.NET)
标准安全连接 以下是语法格式:
Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;
使用"服务器名\实例名"的格式作为Data Source来连接到一个Sql Server服务器上的一个实例。
你用过sql server 2005 Express么?不要忘记服务器的语法“Servername\SQLEXPRESS”(你要把Servername替换为装有sql server 2005 Express的计算机的名字)
标准连接的另一种语法
这个连接字符串和前一个的作用是一样的,只所以放到这里是为了说明有些连接参数带有相同的效果。
以下是语法格式:
Server=myServerAddress;Database=myDataBase;User ID=myUsername;Password=myPassword;Trusted_Connection=False;
信任的连接
Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI;
信任连接的另一种语法
这个连接字符串和前一个的作用是一样的,只所以放到这里是为了说明有些连接参数带有相同的效果。
以下是语法格式:
Server=myServerAddress;Database=myDataBase;Trusted_Connection=True;
这个指名Sql Server 实例的语法中的server参数的值对所有连接Sql Server的字符串相同。 以下是语法格式:
Server=myServerName\theInstanceName;Database=myDataBase;Trusted_Connection=True;
信任连接来至CE设备
通常CE设备是没有验证和登陆到域的。用SSPI或信任验证的连接要使用下面的连接字符串。 以下是语法格式:
Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI;User ID=myDomain\myUsername;Password=myPassword;
注意:上面的语法只能用在CE设置上。
通过IP地址的连接 以下是语法格式:
Data Source=190.190.200.100,1433;Network Library=DBMSSOCN;Initial Catalog=myDataBase;User ID=myUsername;Password=myPassword;
DBMSSOCN=TCP/IP.这是指明使用IP地址而不是命名管道来连接。Data Source的最后是端口。1433是数据库的默认端口。
允许多个结果集(Enable Mars (multiple active result sets))
以下是语法格式:
Server=myServerAddress;Database=myDataBase;Trusted_Connection=True;MultipleActiveResultSets=true;
此功能只支持Ado.net 2.0.
在一个到本地SQL Server Express 实例的连接上附加数据库文件
以下是语法格式:
Server=.\SQLExpress;AttachDbFilename=c:\asd\qwe\mydbfile.mdf;Database=dbname;Trusted_Connection=Yes;
为什么要带上Database参数呢?因为如果有同名的数据库已经被附加上啦,SQL Server将不会重新附加该数据库。他将使用原数据库作为要连接的对象。
在一个到本地SQL Server Express 实例的连接上附加数据库文件(数据文件在数据目录中。)
以下是语法格式:
Server=.\SQLExpress;AttachDbFilename=|DataDirectory|mydbfile.mdf; Database=dbname;Trusted_Connection=Yes;
为什么要带上Database参数呢?因为如果有同名的数据库已经被附加上啦,SQL Server将不会重新附加该数据库。他将使用原数据库作为要连接的对象。
使用本机上的SQL Server Express 实例上的用户实例。
用户实例的连接创建了一个新的SQL Server 实例。此连接只能是在本地SQL Server 2005实例上并且是通过命名管的windows验证连接才有效。目的就是为了给用户创建一个完全权限的Sql Server 实例和有限的计算机管理员权限。
以下是语法格式:
Data Source=.\SQLExpress;Integrated Security=true;AttachDbFilename=|DataDirectory|\mydb.mdf;User Instance=true;
要使用User Instance 功能,你要在sql server服务器上启用他。你可以通过执行“sp_configure 'user instances enabled', '1'”来启用,执行“sp_configure 'user instances enabled', '0'”来禁用。
数据库镜像
如果你用Ado.Net或着SQL Native Client 连接到一个镜像的数据库,当一个数据库镜像出错时,你的应用程序应该提供自动切换连接的功能。那么,你应该在连接字符串中指明原始数据库名和镜像数据库名。
以下是语法格式:
Data Source=myServerAddress;Failover Partner=myMirrorServer;Initial Catalog=myDataBase;Integrated Security=True;
当然还有很多连接数据库镜像的连接字符串的写法。这只是一个例子指明 failover功能。你还可以指明其他的连接字符串属性参数。
异步处理
SQL Server 2005允许通过Ado.net对象进行异步请求任务。
以下是语法格式:
Server=myServerAddress;Database=myDataBase;Integrated Security=True;Asynchronous Processing=True;
SQL Server 2005 specials
Context连接
Connecting to "self" from within your CLR stored prodedure/function. The context connection lets you execute Transact-SQL statements in the same context (connection) that your code was invoked in the first place.
以下是语法格式:
C#
using(SqlConnection connection = new SqlConnection("context connection=true"))
{
connection.Open();
}
---------------数据库连接字符串的加密与解密---------------
ASP.NET web.config中,数据库连接字符串的加密与解密。
方法:开始--->运行,输入cmd,接着输入以下内容
加密:
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -pef "connectionStrings" "你的Web项目路径"
解密:
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -pdf "connectionStrings" "你的Web项目路径"
.NET为版本的路径自行修改,其中connectionStrings连接字符串的名称。
需要注意的是,加密过程中使用了一个基于本机的密钥,这意味着解密过程必须在同一台计算机上完成。如果是将加密后的Web.config文件移动到其它计算机上,那么Web.config文件中的连接字符串将不能够正常解密。
-----------------------------------------------------------------------------------------------------------------------------------------
ASP.net2.0提供了简便的加密方法,即使用aspnet_iis.exe命令,该命令位置如下:
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727
注意,具体情况视系统位置及版本号有所差异
在命令模式下进入该目录即可运行,完整命令为:
aspnet_iis -pef "connectionStrings" "Web.cofing绝对路径(注:不需要输入web.config)"
如果正常会提示“成功”,此时打开Web.config会发现字符串已加密
解密命令为:
aspnet_iis -pdf "connectionStrings" "Web.cofing绝对路径(注:不需要输入web.config)"
注意的是加密、解密必须在一台机器上完成。
--------------连接串加密解密---------------
下面显示的是通过代码方式对数据库连接字符串加密,代码如下:
Configuration config = WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath);
ConfigurationSection configSection = config.GetSection("connectionStrings");
if (configSection.SectionInformation.IsProtected)
...{//如果已经加密,就不用再加密了
configSection.SectionInformation.UnprotectSection();
config.Save();
}
else {
configSection.SectionInformation.ProtectSection ("DataProtectionConfigurationProvider");
config.Save();
}
ASP.NET中web.config中加密连接字符串
旧版本的ASP.NET将连接字符串直接保存在ASPX页面中。回想一下,连接字符串包含了数据服务器名称和用户账户等信息,有时候甚至还包含了密码。在代码中包含以上信息是非常不好的习惯,原因有二。首先,这些信息可以被设计小组中的每一位程序人员看到(但是站点访问者不能在浏览器上看到)。第二,在整个Web站点中的每一个拥有该连接的地方,都必须进行维护和更新。更新密码成为了一项繁重的工作。
ASP.NET 2.0提供了一个选项可以将连接字符串移动至Web.config文件的连接区域,给字符串一个名称并将其加密。然后ASP.NET 2.0页面就通过这个名称来引用连接字符串。保存连接字符串至Web.config的步骤并不复杂。打开位于站点根目录下的Web.config文件。找到被界定的区域(如果不存在,可自行添加)并在标记中输入如下代码。该标记有三个属性:name、connectionString和providerName。属性name就是将会在页面中使用的连接字符串的普通名称。connectionString属性应当设置为连接至数据库的完整的连接字符串,如前所述。
e.g.
http://schemas.microsoft.com/.NetConfiguration/v2.0">
providerName="System.Data.SqlClient" />
providerName="System.Data.SqlClient" />
providerName="System.Data.SqlClient" />
providerName="System.Data.SqlClient" />
providerName="System.Data.SqlClient" />
通过使用命令,可以将Web.config文件的连接字符串区域加密。当ASPX页面请求连接字符串时,将由ASP.NET自动对信息进行解密。加密必须由以下命令行来执行。依次单击Start/Run/cmd并切换至C:\WINDOWS\ Microsoft.net\ Framework\ v2.0.xxxx,其中xxxx是您的软件版本。如果C:\Websites\BegAspNet2Db是站点根目录的话,即可输入如下命令行:
aspnet_regiis –pef connectionStrings C:\Websites\BegAspNet2Db
加密连接字符串的命令行工具还可以使用虚拟路径语法(在IIS元数据库中的路径),而无需指定Web.config文件的完全限定路径,如下所示:
aspnet_regiis –pe connectionStrings –app /BegAspNet2Db
一旦执行完了加密过程,就可以打开Web.config文件,但是连接字符串已经被混淆。当ASP.NET需要,连接字符串即可自动解密,或者如果需要进行一些更改,例如修改密码,则可以手动输入以下代码来解密。
aspnet_regiis –pdf connectionStrings c:\Websites\BegAspNet2Db
请注意,在默认情况下,加密过程使用了一个基于加密算法执行的机器的键。解密过程(无论手动还是在处理页面过程中)必须发生在与加密相同的机器上。例如,作为XCOPY部署的一部分,移动Web.config至另外一台机器将会导致Web.config无法解密,所以推荐在部署Web站点至最终机器之后,再将连接字符串进行加密。
--------------OLE DB Provider Microsoft Jet oledb连接字符串格式介绍-----------
做网站的朋友经连见到用Microsoft.Jet.Oledb.4.0连接Access数据库的情况。那这个连接方式都有哪些参数可供我们设置呢?我们应该如何优化呢?下面我是我找到的关于这个连接方式的介绍。
OLE DB Provider for Microsoft Jet 允许 ADO 访问 Microsoft Jet 数据库。
连接字符串参数
要连接此提供者(Provider),请将 ConnectionString 属性的 Provider 参数设置为:
Microsoft.Jet.OLEDB.4.0
读取 Provider 属性也将返回此字符串。
典型连接字符串
此提供者的典型连接字符串是:
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=databaseName;User ID=userName;Password=userPassword;"
它包含下列关键字:
关键字 说明
Provider 指定 OLE DB Provider for Microsoft Jet。
Data Source 指定数据库路径和文件名(例如,c:\Northwind.mdb)。
User ID 指定用户名称。如果未指定此关键字,则默认使用字符串 "admin"。
Password 指定用户密码。如果未指定此关键字,则默认使用空字符串 ("")。
提供者特有的连接参数
除了 ADO 定义的动态属性外,OLE DB Provider for Microsoft Jet 还支持几个提供者特有的动态属性。象所有其他 Connection 参数一样,可以通过 Connection 对象的 Properties 集合或作为连接字符串的一部分来设置这些参数。
下表列出了这些属性,括号中为相应的 OLE DB 属性名称。
参数 说明
省略
提供者特有的 Recordset 和 Command 属性
默认情况下,OLE DB Provider for Microsoft Jet 以读/写模式打开 Microsoft Jet 数据库。要以只读模式打开数据库,请把 ADO Connection 对象的 Mode 属性设置为 adModeRead。
Command 对象的用法
Command 对象中的命令文本使用 Microsoft Jet SQL 方言。可以在命令文本中指定行返回查询、操作查询和表名,但存储过程将不受支持也不能指定。
Recordset 行为
Microsoft Jet 数据库引擎不支持动态游标。因此,OLE DB Provider for Microsoft Jet 不支持 adLockDynamic 游标类型。请求动态游标时,提供者将返回一个键集游标并重置 CursorType 属性以指示返回的 Recordset 的类型。另外,如果请求可更新的 Recordset(LockType 为 adLockOptimistic、adLockBatchOptimistic 或 adLockPessimistic),提供者也将返回一个键集游标并重置 CursorType 属性。
动态属性
OLE DB Provider for Microsoft Jet 向未打开的 Connection、Recordset 和 Command 对象的 Properties 集合中插入了多个动态属性。
下表是每个动态属性的 ADO 和 OLE DB 名称的交*索引。OLE DB Programmer's Reference 使用“Description”项引用 ADO 属性名称。有关这些属性的详细信息,请参阅 OLE DB Programmer's Reference。请在“索引”中搜索 OLE DB 属性名称或参阅 Appendix C:OLE DB Properties。
Connection 动态属性
下列属性被添加到 Connection 对象的 Properties 集合中。
ADO 属性名称 OLE DB 属性名称
省略
Recordset 动态属性
下列属性被添加到 Recordset 对象的 Properties 集合中。
Command 动态属性
下列属性被添加到 Command 对象的 Properties 集合中。
ADO 属性名称 OLE DB 属性名称
省略
请参阅 有关 OLE DB Provider for Microsoft Jet 的特定实现和功能的详细信息,请参阅 MDAC SDK 中的 OLE DB Provider for Microsoft Jet 文档。
-----------------Access 2007连接字符串总结------------------
ACE OLEDB 12.0连接方式
标准安全连接 以下是语法格式:
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\myFolder\myAccess2007file.accdb;Persist Security Info=False;
带数据库密码的连接
这个语句适用于连接你在Access2007中通过“设置数据库密码”功能保护的数据库。
以下是语法格式:
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\myFolder\myAccess2007file.accdb;Jet OLEDB:Database Password=MyDbPassword;
DataDirectory functionality 以下是语法格式:
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\myAccess2007file.accdb;Persist Security Info=False;
---------------------Excel 2007连接字符串总结-------------------
ACE OLEDB 12.0连接方式
Xlsx文件
这是用来连接带Xlsx扩展名的Excel 2007文件。这是不带宏的Office Open XML格式。
以下是语法格式:
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\myFolder\myExcel2007file.xlsx;Extended Properties="Excel 12.0 Xml;HDR=YES";
"HDR=yes;"是说第一行是列名而不是数据。"HDR=No;"正好与前面的相反。
把数据当做文本对待
使用这条连接当你想把所有的数据都当做文本对待时,覆盖Excel通常的猜测这列的数据类型。 以下是语法格式:
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\myFolder\myExcel2007file.xlsx;Extended Properties="Excel 12.0 Xml;HDR=YES;IMEX=1";
如果你想把列名也读到结果集中(使用“HDR=NO”尽管第一行是列名)并且列中的数据是数值型的,使用“IMEX=1”可必免冲突。
使用"IMEX=1"检索混合数据列是一种安全的方法。试想一下,当Driver检索出数据列中有一种数据类型的excel文件可以正常工作,而另一个excel文件(某列)被检测出两种类型,这会造成你的程序的冲突。
Xlsb文件
这是用来连接带Xlsb扩展名的Excel 2007文件。这是一种保存为二进制的Office Open XML格式。 不像Xlsx文件那种可读的文件格式。此种格式在数据量大时可以提升性能。 以下是语法格式:
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\myFolder\myBinaryExcel2007file.xlsb;Extended Properties="Excel 12.0;HDR=YES";
"HDR=yes;"是说第一行是列名而不是数据。"HDR=No;"正好与前面的相反。
Xlsm文件
这是用来连接带Xlsm扩展名的Excel 2007文件。这是带宏的Office Open XML格式。 以下是语法格式:
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\myFolder\myExcel2007file.xlsm;Extended Properties="Excel 12.0 Macro;HDR=YES";
注意:字符串中的引号"要用你的程序的语言的转义语法转义一下。
在C#,C++中为 \" , VB,VBScript为 ""
XML(Web.config etc) " , 或者可以使用单引号。
---------------------Oracle连接字符串总结----------------------Oracle XE
标准连接
Oracle XE(或者"Oracle Database 10g Express Edition")是一个简单免费发布的版本。 以下是语法格式:
Driver=(Oracle in XEClient);dbq=111.21.31.99:1521/XE;Uid=myUsername;Pwd=myPassword;
ODBC
新版本连接方式 以下是语法格式:
Driver={Microsoft ODBC for Oracle};Server=myServerAddress;Uid=myUsername;Pwd=myPassword;
老版本连接方式 以下是语法格式:
Driver={Microsoft ODBC Driver for Oracle};ConnectString=OracleServer.world;Uid=myUsername;Pwd=myPassword;
OLE DB, OleDbConnection (.NET)
标准安全连接
此连接方式使用来自微软的Provider。 以下是语法格式:
Provider=msdaora;Data Source=MyOracleDB;User Id=myUsername;Password=myPassword;
信任连接 以下是语法格式:
Provider=msdaora;Data Source=MyOracleDB;Persist Security Info=False;Integrated Security=Yes;
标准安全连接
此连接方式使用来自Oracle的Provider。 以下是语法格式:
Provider=OraOLEDB.Oracle;Data Source=MyOracleDB;User Id=myUsername;Password=myPassword;
信任连接 以下是语法格式:
Provider=OraOLEDB.Oracle;Data Source=MyOracleDB;OSAuthent=1;
TNS-less 连接字符串
以下是语法格式:
Provider=OraOLEDB.Oracle;Data Source=(DESCRIPTION=(CID=GTU_APP)(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=myHost)(PORT=myPort)))(CONNECT_DATA=(SID=MyOracleSID)(SERVER=DEDICATED)));User Id=myUsername;Password=myPassword;
Oracle.DataAccess.Client.OracleConnection
标准连接
以下是语法格式:
Data Source=TORCL;User Id=myUsername;Password=myPassword;
带integrated security的连接
以下是语法格式:
Data Source=TORCL;Integrated Security=SSPI;
带 ODP.NET 不带 tnsnames.ora的连接
以下是语法格式:
Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=MyHost)(PORT=MyPort)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=MyOracleSID)));User Id=myUsername;Password=myPassword;
OracleConnection, Oracle Data Provider, ODP.NET, System.Data.OracleClient.OracleConnection
标准连接
以下是语法格式:
Data Source=MyOracleDB;Integrated Security=yes
仅在Oracle8i release 3 或更高版本
指明用户密与密码的连接
以下是语法格式:
Data Source=MyOracleDB;User Id=myUsername;Password=myPassword;Integrated Security=no;
This one works only with Oracle 8i release 3 or later
省略tnsnames.ora
这是另一种连接方式不依赖你的DNS.You create a connection string based on the format used in the tnsnames.ora file without the need to actually have one of these files on the client pc.
以下是语法格式:
SERVER=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=MyHost)(PORT=MyPort))(CONNECT_DATA=(SERVICE_NAME=MyOracleSID)));uid=myUsername;pwd=myPassword;
Some reported problems with the one above and Visual Studio. Use the next one if you've encountered problems.
以下是语法格式:
Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=MyHost)(PORT=MyPort))(CONNECT_DATA=(SERVICE_NAME=MyOracleSID)));User Id=myUsername;Password=myPassword;
使用连接池
连接池服务如果找不到一个完全匹配连接字符串的连接,他将会创建一个。如果能找到该连接,将会重新使用。
以下是语法格式:
Data Source=myOracleDB;User Id=myUsername;Password=myPassword;Min Pool Size=10;Connection Lifetime=120;Connection Timeout=60;Incr Pool Size=5;Decr Pool Size=2;
Windows验证
以下是语法格式:
Data Source=myOracleDB;User Id=/;
特权连接
使用SYSOPER的特权
以下是语法格式:
Data Source=myOracleDB;User Id=SYS;Password=SYS;DBA Privilege=SYSOPER;
利用密码终止函数
当第一次打开连接时,当打开链接后,一个密码过期错误被抛出,捕获这个错误并执行OpenWithNewPassword命令行设置新密码。
以下是语法格式:
Data Source=myOracleDB;User Id=myUsername;Password=myPassword;
oConn.OpenWithNewPassword(sTheNewPassword);
代理验证
以下是语法格式:
Data Source=myOracleDB;User Id=myUsername;Password=myPassword;Proxy User Id=pUserId;Proxy Password=pPassword;
Core Labs OraDirect (.NET)
标准连接 以下是语法格式:
User ID=myUsername;Password=myPassword;Host=ora;Pooling=true;Min Pool Size=0;Max Pool Size=100;Connection Lifetime=0;
Data Shape
MS Data Shape
以下是语法格式:
Provider=MSDataShape.1;Persist Security Info=False;Data Provider=MSDAORA;Data Source=orac;User Id=myUsername;Password=myPassword;
-------------NET SQL Server连接字符串句法 连接池设置--------------
NET SQL Server连接字符串句法
数据库的连接性已经发展成为应用程序开发的一个标准方面。数据库连接字符串现在已经成为每个项目的标准必备条件。我发现自己为了找到所需要的句法,经常要从另外一个应用程序中复制连接字符串或者进行一次搜索。这个在与SQL Server交互操作时更是如此,因为它有太多的连接字符串选项。现在就让我们来研究一下连接字符串的众多方面。
连接字符串
在对象实例化或者建立期间,数据库连接字符串通过属性或方法被传递到必要的对象。连接字符串的格式是一个以分号为界,划分键/值参数对的列表。列表A中包括了一个C#中的例子,说明了怎样用创建SqlConnection对象的方法连接到SQL Server(实际的连接字符串是通过对象的ConnectionString属性分配的)。列表B中包括的是VB.NET的版本。
列表A
string cString = "Data Source=server;Initial Catalog=db;User ID=test;Password=test;";
SqlConnectionconn = new SqlConnection();
conn.ConnectionString = cString;
conn.Open();
列表B
Dim cString As String
cString = "Data Source=server;Initial Catalog=db;User ID=test;Password=test;"
Dim conn As SqlConnection = New SqlConnection()
conn.ConnectionString = cString
conn.Open()
连接字符串会指定数据库服务器和数据库,以及访问数据库必需的用户名和密码。但是这种格式并不是对所有数据库交互都适用,它的确有许多可用的选项,其中很多选项都有同义词。
和Data Source(数据源)、Initial Catalog(初始编目)、User ID(用户ID)、和Password(密码)等元素一起,下面这些选项都是可用的:
Application Name(应用程序名称):应用程序的名称。如果没有被指定的话,它的值为.NET SqlClient Data Provider(数据提供程序).
AttachDBFilename/extended properties(扩展属性)/Initial File Name(初始文件名):可连接数据库的主要文件的名称,包括完整路径名称。数据库名称必须用关键字数据库指定。
Connect Timeout(连接超时)/Connection Timeout(连接超时):一个到服务器的连接在终止之前等待的时间长度(以秒计),缺省值为15。
Connection Lifetime(连接生存时间):当一个连接被返回到连接池时,它的创建时间会与当前时间进行对比。如果这个时间跨度超过了连接的有效期的话,连接就被取消。其缺省值为0。
Connection Reset(连接重置):表示一个连接在从连接池中被移除时是否被重置。一个伪的有效在获得一个连接的时候就无需再进行一个额外的服务器来回运作,其缺省值为真。
Current Language(当前语言):SQL Server语言记录的名称。
Data Source(数据源)/Server(服务器)/Address(地址)/Addr(地址)/Network Address(网络地址):SQL Server实例的名称或网络地址。
Encrypt(加密):当值为真时,如果服务器安装了授权证书,SQL Server就会对所有在客户和服务器之间传输的数据使用SSL加密。被接受的值有true(真)、false(伪)、yes(是)和no(否)。
Enlist(登记):表示连接池程序是否会自动登记创建线程的当前事务语境中的连接,其缺省值为真。
Database(数据库)/Initial Catalog(初始编目):数据库的名称。
Integrated Security(集成安全)/Trusted Connection(受信连接):表示Windows认证是否被用来连接数据库。它可以被设置成真、伪或者是和真对等的sspi,其缺省值为伪。
Max Pool Size(连接池的最大容量):连接池允许的连接数的最大值,其缺省值为100。
Min Pool Size(连接池的最小容量):连接池允许的连接数的最小值,其缺省值为0。
Network Library(网络库)/Net(网络):用来建立到一个SQL Server实例的连接的网络库。支持的值包括: dbnmpntw (Named Pipes)、dbmsrpcn (Multiprotocol/RPC)、dbmsvinn(Banyan Vines)、dbmsspxn (IPX/SPX)和dbmssocn (TCP/IP)。协议的动态链接库必须被安装到适当的连接,其缺省值为TCP/IP。
Packet Size(数据包大小):用来和数据库通信的网络数据包的大小。其缺省值为8192。
Password(密码)/Pwd:与帐户名相对应的密码。
Persist Security Info(保持安全信息):用来确定一旦连接建立了以后安全信息是否可用。如果值为真的话,说明像用户名和密码这样对安全性比较敏感的数据可用,而如果值为伪则不可用。重置连接字符串将重新配置包括密码在内的所有连接字符串的值。其缺省值为伪。
Pooling(池):确定是否使用连接池。如果值为真的话,连接就要从适当的连接池中获得,或者,如果需要的话,连接将被创建,然后被加入合适的连接池中。其缺省值为真。
User ID(用户ID):用来登陆数据库的帐户名。
Workstation ID(工作站ID):连接到SQL Server的工作站的名称。其缺省值为本地计算机的名称。
下面的连接字符串用一个受信连接和指定的登陆证书(不及管理员密码空缺安全),在TestDev1服务器上与Northwind数据库建立连接:
Server=TestDev1;Database=Northwind;User ID=sa;
Password=;Trusted_Connection=True;
下一个连接字符串使用了TCIP/IP 和一个指定的IP地址:
Data Source=192.162.1.100,1433;Network Library=DBMSSOCN;
Initial Catalog=Northwind;User ID=sa;Password=;
所使用的选项可以很容易地包括在连接字符串中,但是它们还是取决于你的应用程序和它的要求。知道什么是可用的是很有好处的,这样你就可以恰当地使用它。
使用ADO.NET 2.0
ADO.NET 2.0为每一个.NET框架的数据提供程序引进了新的连接字符串生成器。关键词作为属性被列出,使得连接字符串句法在提交到数据源之前就生效。也还有新的类可以使连接字符串在配置文件中的存储和检索变得简单,并且用受保护的方式将它们加密。
或多或少,正是你需要的。
通过.NET应用程序连接到SQL Server为特定的连接参数和其他选项提供了多种选择。它可以像指定数据库、服务器和登录凭据那样简单,也可能像设置缓冲连接池和安全选项一样复杂。ADO.NET 2.0的确通过数据库类使得连接字符串选项具有了更大的灵活性。你只需使用应用程序所需要的选项,不必理会其他的。而且,如果你发现自己身陷困境,记不得连接字符串句法了,可以查阅以下网址ConnectionStrings.com。