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;"
它包含下列关键字: