数据库连接字符串,这个东东,编程的时候总是能碰到它,一直没有仔细、系统地研究,整理这个东西;现在想理理。
当我们的应用程序需要连接到数据库或数据文件时,我们会使用 ADO、 ADO.Net等等,通过一个提供程序(Provider)来进行读/写数据等等操作。
而这时:连接字符串包含提供了程序需要知道要能够建立到数据库或数据文件的连接的信息。
由于有不同的提供程序,而且每个供应商有多种方法可以使有一个连接是许多不同的方式写入一个连接字符串。
格式:
数据库连接字符串包含一系列 "名称=值"这样的元素,每个元素间使用";"进行分隔。
如:Data Source=192.186.0.1;Initial Catalog=mydb;User ID=sysman;Password=1qaz
规则:
在值或引号外的所有空白字符被忽略;
如:
(1)Data Source=192.186.0.1;Initial Catalog=mydb;User ID=sysman;Password=1qaz
(2)Data Source=192.186.0.1; Initial Catalog=mydb;User ID=sysman;Password=1qaz
(1)和(2)是等效的。
如果一个分号 (;) 是一个值,它必须被单引号 (' ') 包起来;
如果该值以双引号 (") 开始,则使用使用单引号 (');
如:Data Source=192.186.0.1;Initial Catalog=mydb;User ID=sysman;Password='"1qaz'
密码关键字(Password)的值是:"1qaz,第一个字符是"(双引号) ;
相反,使用双引号 ("),如果该值以单引号 (')
如:Data Source=192.186.0.1;Initial Catalog=mydb;User ID=sysman;Password="'1qaz"
密码关键字(Password)的值是:'1qaz,第一个字符是'(单引号)
不支持任何转义序列
不能使用值类型
如果"关键字 = 值"(如:Data Source=192.186.0.1)元素不止出现一次,那么将以最后一个为主
如:Data Source=192.186.0.1;Data Source=192.186.10.2;Initial Catalog=mydb;User ID=sysman;Password=1qaz,起作用的将是Data Source=192.186.10.2。
但假如提供程序关键字出现多次,则使用第一个。
如:Provider=SQLOLEDB;Provider=Microsoft.Jet.OleDb.4.0;Data Source=192.186.0.1;Data Source=192.186.10.2;Initial Catalog=mydb;User ID=sysman;Password=1qaz,起作用的将是Provider=SQLOLEDB;
如果关键字中包含等号 (=) 则必须加一个额外的等号,以表示它是关键字的一部分。
参考文章:http://www.connectionstrings.com/Articles/Show/important-rules-for-connection-strings