摘要

ADO.NET强大的优势在于对不同的数据源提供一致的访问。在上一篇文章《你必须知道的ADO.NET(二)了解.NET数据提供程序》中,我们知道.NET对不同数据源,使用不同的数据提供程序,这使得我们可以更高效的访问相应的数据源。除了.NET数据提供程序外,我还得说说另外一位功臣:连接字符串(Connection Strings),它也为ADO.NET在解决“不同”与“一致”的矛盾中,贡献出了非常重要的力量。

目录

1. 什么是连接字符串?

我们已经知道,ADO.NET类库为不同的外部数据源提供了一致的访问。这些数据源可以是本地的数据文件(如excel、txt、access,甚至是SQLite),也可以是远程的数据库服务器(如SQL Server、MySQL、DB2、Oracle等)。数据源似乎琳琅满目,鱼龙混杂。请试想一下,ADO.NET如何能够准确而又高效的访问到不同数据源呢?在上一篇《你必须知道的ADO.NET(二)了解.NET数据提供程序》中,你或许已经清楚,ADO.NET已经为不同的数据源编写了不同的数据提供程序。但是这个前提是,我们得访问到正确的数据源。否则的话,只会“张冠李戴,驴头不对马嘴”。就好比,我们用SQL Server数据提供程序去处理excel数据源,结果肯定是让人“瞠目结舌”的。英雄总在最需要的时候出现,连接字符串,就是这样一组被格式化的键值对:它告诉ADO.NET数据源在哪里,需要什么样的数据格式,提供什么样的访问信任级别以及其他任何包括连接的相关信息。哦!如果你这样想的话,那么以后你使用连接字符串的时候,或许就不会小觑了吧!

2.理解语法格式

其实,连接字符串虽然影响深远,但是其本身的语法却是十分的简单。连接字符串由一组元素组成,一个元素包含一个键值对,元素之间由“;”分开。语法如下:

key1=value1;key2=value2;key3=value3...

典型的元素(键值对)应当包含这些信息:数据源是基于文件的还是基于网络的数据库服务器,是否需要账号密码来访问数据源,超时的限制是多少,以及其他相关的配置信息。我们知道,值(value)是根据键(key)来确定的,那么键(key)如何来确定呢?语法并没有规定键(key)是什么,这需要根据你需要连接的数据源来确定的。在下一节中,我将详细讲解几种常用的连接字符串。

3.例举几种典型连接字符串

3.1 SQL Sever连接字符串

(1)标准的安全连接

Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;

说明:

Data Source:需要连接的服务器。需要注意的是,如果使用的时Express版本的SQL Server需要在服务器名后加\SQLEXPRESS。例如,连接本地的SQL Server 2008 Express版本的数据库服务器,可以写成Data Source = (local)\SQLEXPRESS或者.\SQLEXPRESS。

Initial Catalog:默认使用的数据库名称。

User ID:数据库服务器账号。

Password:数据库服务器密码。

或者也可以写成这样:

Server=myServerAddress;Database=myDataBase;User ID=myUsername;Password=myPassword;Trusted_Connection=False;

(2)可信连接

Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI;

说明:

Data Source:与上述相同。

Initial Catalog:与上述相同。

Integrate Security:使用存在的windows安全证书访问数据库。

或者也可以写成这样:

Server=myServerAddress;Database=myDataBase;Trusted_Connection=True;

3.2 Access连接字符串

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\mydatabase.mdb;User Id=admin;Password=;

3.3 MySQL连接字符串

Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;

3.4 DB2连接字符串

Server=myAddress:myPortNumber;Database=myDataBase;UID=myUsername;PWD=myPassword;

3.5 Oracle连接字符串

Data Source=TORCL;User Id=myUsername;Password=myPassword;

4.如何构造连接字符串?

在上面我们知道,连接字符串本质上就是一个字符串,因此我们完全可以用

string connStr = "Data Source=myServerAddress;Initial Catalog=myDataBase;User ID=myUsername;Password=myPassword";

来构造一个连接字符串。实际上,ADO.NET有一个专门的类来处理连接字符串:DbConnectionStringBuilder。DbConnectionStringBuilder类为强类型连接字符串生成基类。之所以要有这样一个类,是因为它更加安全与友好。以SQL Server为例,可以这样构建一个连接字符串:

1 SqlClient.SqlConnectionStringBuilder builder =

2 new SqlClient.SqlConnectionStringBuilder();

3 builder.DataSource = @"(local)\SQLEXPRESS";

4 builder.InitialCatalog = "myDataBase";

5 builder.IntegratedSecurity = true;

5.在配置文件中存储连接字符串

在我们实际开发中,我们一般不会把连接字符串直接写在代码中,而是存储在配置文件里。把连接字符串写死在代码中,不便于维护,每次修改字符串时,还得重新编译代码。以ASP.NET应用程序为例,我们一般把连接字符串写在web.config配置文件的节点。例如:

1

2

3

因此,我们只需要在程序中添加相应代码来获取配置文件中的值,比如:

string connStr = ConfigurationManager.ConnectionStrings["connStr"].ToString();

当然,你可以在配置文件的节点下添加连接字符串,获取字符串值的方法类似。在下一篇文章中,我将讲解如何连接数据库,希望大家多多关注。

mysql连接字符串db2_ADO.NET入门教程(三) 连接字符串,你小觑了吗?相关推荐

  1. qpython3可视图形界面_PySide——Python图形化界面入门教程(三)

    PySide--Python图形化界面入门教程(三) --使用内建新号和槽 --Using Built-In Signals and Slots 上一个教程中,我们学习了如何创建和建立交互widget ...

  2. TypeScript入门教程 之 模板字符串

    TypeScript入门教程 之 模板字符串 模板文字(模板字符串) 从语法上讲,这些是使用反引号(即`)而不是单引号(')或双引号(")引号的字符串.Template Literals的动 ...

  3. python爬虫入门教程(三):淘女郎爬虫 ( 接口解析 | 图片下载 )

    2019/10/28更新 网站已改版,代码已失效(其实早就失效了,但我懒得改...)此博文仅供做思路上的参考 代码使用python2编写,因已失效,就未改写成python3 爬虫入门系列教程: pyt ...

  4. R语言七天入门教程三:学习基本结构

    R语言七天入门教程三:学习基本结构 一.编程的语言的基本结构 1.三种基本结构 绝大多数编程语言,都有三种最基本的程序结构:顺序结构.分支结构.循环结构.这三种结构的流程图如下所示(从左至右依次为:顺 ...

  5. SpringCloud 入门教程(三): 配置自动刷新

    Spring Cloud 入门教程(三): 配置自动刷新 之前讲的配置管理, 只有在应用启动时会读取到GIT的内容, 之后只要应用不重启,GIT中文件的修改,应用无法感知, 即使重启Config Se ...

  6. 【MATLAB Image Processing Toolbox 入门教程三】快速入门之“在多光谱图像中寻找植被”

    [MATLAB Image Processing Toolbox 入门教程三] 本篇摘要 一.从多光谱图像文件导入彩色红外通道 二.构建近红外光谱散射图 三.计算植被系数并显示其定位 四.综合实例部分 ...

  7. dbforge连接mysql_DbForge Schema Compare for MySQL入门教程:如何连接到数据库

    要创建连接: 1. 在"Connection" 工具栏上单击"New Connection"按钮 . 2. 在"Host" 框中输入主机名. ...

  8. (原创)LEON3入门教程(三):基于LEON3的SOPC设计以及HELLOWORLD和流水灯

    摘要:通过前两篇博客的介绍,Windows下基本的LEON3开发环境就已经搭建好了.这篇博客将要介绍LEON3 SOPC平台的搭建(使用Cygwin+GRLIB)和 LEON3 IDE(eclipse ...

  9. Python ln_Python入门教程(三):史上最全的Numpy计算函数总结,建议收藏!

    点击上方 蓝字 关注我们 Numpy提供了灵活的.静态类型的.可编译的程序接口口来优化数组的计算,也被称作向量操作,因此在Python数据科学界Numpy显得尤为重要.Numpy的向量操作是通过通用函 ...

最新文章

  1. MySQL配置全文索引
  2. java 多线程 任务队列_Java并发编程线程池任务队列
  3. 术中导航_密码术中的计数器(CTR)模式
  4. 一般用法(IPG写)
  5. TreeSet简单介绍与使用方法
  6. (转 留存)Windows环境下的NodeJS+NPM+GIT+Bower安装配置步骤
  7. 计算机主页为什么打不开怎么办,主页被限制,打不开怎么办?
  8. 计算机桌面提示区,win7如何把电脑桌面分成四个区域?电脑分区域显示方法
  9. web安全与渗透测试培训全套视频
  10. 数字图像处理技术的应用领域
  11. python中json是什么意思_python中json是什么
  12. Python心法:numpy命令关于axis=0,axis=1,axis=2
  13. 程序流程图、N-S图、PAD图
  14. java 抽奖_简单实现java抽奖系统
  15. 2022-2028全球多通道光纤旋转接头(FORJ)行业调研及趋势分析报告
  16. 淘宝秒杀Python脚本
  17. 阿里云的认证有效期是多久?到期后怎么办呢?
  18. xxx is not a function
  19. SQL SERVER使用STUFF函数拼接
  20. 空白设计手法在平面设计中有哪些作用

热门文章

  1. 服务器ssd硬盘的读写速度,SSD完胜HDD:读写速度和IOPS对比
  2. PhoneGap开发手机程序入门教程
  3. Word中公式编辑器mathtype中符号显示异常
  4. Jakarta Commons Logging(JCL)开发手记
  5. 无线图传- HDMI1.4 无线图传
  6. vscode使用git提交项目到coding
  7. 阿里云申请云盾免费SSL证书(https)
  8. VS2012错误之:warning LNK4075: 忽略“/EDITANDCONTINUE”(由于“/SAFESEH”规范)
  9. 985毕业入职阿里,2年升职到P7,晒出真实月薪,以为看错了
  10. 小米手机怎么录屏?小米手机录屏功能在哪?