4-1 ADO.NET简介 5

本文涉及的产品
云数据库 RDS SQL Server,基础系列 2核4GB
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
简介:

4-1-5   Connection对象

1.Connection对象概述

要开发数据库应用程序,首先需要建立与数据库的连接。在ADO.NET中,数据库连接是通过Connection对象管理的。此外,事务管理也通过Connection对象进行。不同的数据提供程序对应着不同的Connection对象,请看表46
4-6 各个命名空间中的Connection对象表
提供程序
Connection
SQL数据提供程序
SqlConnection
OLE DB数据提供程序
OleDbConnection
Oracle数据提供程序
OracleConnection
ODBC数据提供程序
OdbcConnection
在后面的内容中,主要以SqlConnection对象为例。

2.Connection对象的使用

1Connection对象的属性和方法
Connection对象最常用的属性有ConnectionStringDatabase。其中ConnectionString属性用来获取或设置用于打开SQL Server数据库的字符串。Database属性用来获取当前数据库或连接打开后要使用的数据库的名称。ConnectionString属性要使用到连接字符串,关于连接字符串部分,在后面将有大篇幅来介绍。
Connection对象最常用的方法有Open()和Close()。其中Open()方法使用ConnectionString所指定的属性设置打开数据库连接。如果SqlConnection超出范围,则不会将其关闭。因此,必须通过调用Close显式关闭该连接。Close()方法用来关闭与数据库的连接。这是关闭任何打开连接的首选方法。请看下面的示例:
private  static void OpenSqlConnection(string connectionString)
{
        using (SqlConnection connection = new SqlConnection(connectionString))
        {
            connection.Open();
            Console.WriteLine("ServerVersion: {0}", connection.ServerVersion);
            Console.WriteLine("State: {0}", connection.State);
        }
}
2Connection对象组件
.NET开发平台将一部分对象做成可视化的对象组件,程序员在编程的时候可以不用编写大量代码去定义和使用,只需要在工具箱中拖拽一个组件到窗体上,就可以进行配置使用。这种方式大幅的提高了编程效率,降低了出错率,但是在实际项目开发中不建议采取这种拖拽的形式进行ADO.NET开发。

3.   案例学习:通过拖拽形式建立Connection对象的数据库连接实验

u   实验步骤(1)
首先右击工具箱弹出菜单,在弹出菜单中点击“选择项”,在出现的选择工具箱箱中选中要使用到的SqlConnection等一系列ADO.NET对象组件,在它们前面的复选框中打上对号,并;最后点击“确定”,SqlConnection等组件就出现在工具箱中。如图413所示。
4-13 向工具箱添加组件图
u  实验步骤(2)
在工具箱中选择“数据”选项卡,找到刚刚添加上的SqlConnection对象组件,点击后向窗体拖放,在设计窗口下的组件栏出现SqlConnection1对象。选中SqlConnection1对象,在属性窗口找到ConnectionString属性,选择右侧下拉框中的“新建连接”。设计窗口会弹出一个“添加连接”窗口(如图4-14所示)。这个窗口是配置SqlConnection1对象的连接属性而专用的窗口。在“添加连接”窗口,首先要在列表中选择SQL Server服务器,然后要指定用户和密码,最后选择要连接的数据库。点击“测试连接”,如果连接成功,则会显示一则成功消息。这时,就可以看到SqlConnection1对象的ConnectionString属性右侧栏中出现一长串字符,这就是连接字符串。在后续的代码编写过程中,就可以使用SqlConnection1对象对数据库进行访问了。
4-14 添加数据库连接图

4.案例学习:通过编写代码来连接数据库的连接实验

u  实验步骤(1)定义连接字符串
数据库的连接定义一般是以字符串的形式出现,该字符串的定义参见图415所示。
4-15 连接字符串举例图
不管用拖放方式在图形界面增加的SqlConnection1对象,还是通过代码编写生成的SqlConnection1对象,都需要定义连接字符串。界面增加的SqlConnection1对象,其连接字符串在配置数据库连接后自动生成,而代码编写生成的SqlConnection1对象,其连接字符串需要安装格式要求手工编写。连接字符串决定了连接某台服务器,某个数据库,还有连接方式及要求。
编程时定义连接字符串的具体例子,参见图416
4-16 定义连接字符串具体举例图
    416中,SqlConnection1sqlconnection对象,通过sqlconnection对象加载数据库连接字符串与MSSQL进行连接。在连接字符串中,“Server=SQLDB;”表示存储“pubs”数据库的服务器名称,该服务器名称为SQLDB,也可以写成IP地址,如123.101.220.1。如果是本地数据库服务器,可以有以下几种写法:
n  “(local)”或者“.”
n  127.0. 0.1
n  本地机子名称
在连接字符串中,“User id=sa; pwd=password”表示登录数据库服务器用户名称和密码,使用这种用户身份登录方式必须是,用户同样可以使用“SQL Server身份认证”登录数据库服务器,否则连接仍然会失败。最后的“database=pubs”表示登录服务器是pubs数据库。
 
小知识:
 
连接字符串
所有的连接字符串都有相同的格式,它们由一组关键字和值组成,中间用分号隔开,两端加上单引号或双引号。关键字不区分大小写,但是值可能会根据数据源的情况区分大小写。
假设SQL Server2005数据库服务器为本机,要访问的数据库名为MyDB,采用Windows集成安全性认证方式。
         SQL Client 方式的连接字符串如下:
"Data Source=127.0.0.1;Persist Security Info=False;Initial Catalog=MyDB;Integrated Security=SSPI"
"Data Source" 是关键字,这里与"server"可以呼唤,都用来表示数据库服务器,等号后面就要对应具体的数据库服务器的IP或者名称。"Persist Security Info"关键字,如果将该关键字设置为trueyes,将允许在打开连接后,从连接中获得涉及安全性的信息(包括用户标识和密码)。如果在建立连接时必须提供用户标识和密码,最安全的方法是在使用信息打开连接后丢弃这些信息,在Persist Security Info设置为falseno时会发生这种情况。当您向不可信的源提供打开的连接,或将连接信息永久保存到磁盘时,这点尤其重要。如果将Persist Security Info保持为false,可帮助确保不可信的源无法访问连接中涉及安全性的信息,并帮助确保任何涉及安全性的信息都不会随连接字符串信息在磁盘上持久化。"Initial Catalog"关键字可以与"database"关键字互换,用来指定需要连接的数据库服务器中具体某一数据库,等号后面就要对应具体的数据库,本例中就是"MyDB""Integrated Security"关键字表示是否使用Windows身份验证(通常称为集成安全性)连接到服务器数据库上。如果键值为"true"或者"SSPI"表示指定Windows身份验证,如果键值为"false"表示不指定Windows身份验证。但是,只有键值"SSPI"将适用于OleDb .NET Framework数据提供程序。对于ODBC .NET Framework数据提供程序,必须使用以下键/"Trusted_Connection=yes;"指定Windows身份验证。对于不使用Windows身份验证而使用SQL Server身份验证,使用"User ID=*****;Password=*****;"替换掉"Integrated Security"关键字及其键值,来指定用户名和密码。
         OLE DB 方式的连接字符串如下:
"Provider=SQLOLEDB;Data Source=127.0.0.1;Persist Security Info=False;
Initial Catalog=MyDB;Integrated Security=SSPI"
"Provider" 关键字用来指定哪一类数据源,其键值取值可以参见表44,其他关键字用法与SQL Client方式相同。
         ODBC 方式的连接字符串如下:
"Driver={SQL Server};Server=127.0.0.1;Database=MyDB;Trusted_Connection=Yes;UID=Administrator"
"Driver" 关键字用来指定哪一类数据源,其键值取值可以参见表45,其他关键字用法与SQL Client方式相似。区别就是"Trusted_Connection""UID""Integrated Security""User ID",关键字虽然不同,但是用法相同。
 
u   实验步骤(2):创建Connection对象
在代码编辑器里面,通过编写代码的方式创建Connection对象的过程参见图417所示:
4-17 创建连接对象图
在对象创建过程中将连接字符串作为参数传递给SqlConnection类的构造函数,这样连接对象SqlConnection1就可以用来访问数据了。构造函数还有个重载,就是参数为空的构造函数。在实例化时不将连接字符串作为参数传给构造函数,实例化之后,给对象SqlConnection1的属性ConnectionString赋值,完成对象SqlConnection1的设置。例如:
 
SqlConnection  SqlConnection1 = new SqlConnection();
SqlConnection1.ConnectionString = "Data Source= 10.5.0 .30;Initial Catalog=TTDB;
User ID=TrainingDeveloper  Pwd=Password" ;
 
u  实验步骤(3):打开与数据库的连接
Connection对象的Open()方法就可以打开数据库连接。例如:
     SqlConnection1.Open( );




本文转自 qianshao 51CTO博客,原文链接:http://blog.51cto.com/qianshao/214525,如需转载请自行联系原作者

相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
目录
相关文章
|
存储 开发框架 .NET
ADO.NET基础01
ADO.NET基础01
151 0
ADO.NET基础01
|
SQL 数据库连接 数据处理
ADO.NET基础03
ADO.NET基础03
151 0
ADO.NET基础03
|
SQL 安全 数据库连接
ADO.NET基础02
ADO.NET基础02
209 0
ADO.NET基础02
|
SQL Oracle 关系型数据库
ADO.Net简介 140
  ADO.NET是.Net中一组类库,通过这组类库可以让我们通过程序的方式访问数据库中数据;之前学习的都是在数据库管理器中通过设计器或者SQL语句进行增删改查等操作数据库中的数据,对于普通用户不可能每个人都必须学习SQL,才能查看使用数据库,我们使用ADO.Net中的类库通过搭建比如窗体程序,使普通用户通过窗体上的按钮就可以很方便地操作和使用数据库中的数据,比如去买火车飞机等票时,窗口的出票员他们不可能每个人都去学习过SQL的知识后才能上岗,他们也是通过窗体或者网页方式查询使用数据库的数据的   ADO.NET中最重要的两个类:1)Connection用来连接数据库 2)Command用
151 0
|
前端开发 .NET 数据库
一起谈.NET技术,详解ASP.NET MVC 2中的新ADO.NET实体框架
  .NET框架4.0的发行推出了许多优秀的增强功能,其中当首推ADO.NET实体框架。该框架已经克服了以前的许多错误,并提供了一组增强的API,其中包括许多新的LINQ to SQL框架方面的改善。在本文中,我们将使用这些API的功能来创建一个通用版本的数据仓库。
1052 0
|
SQL 安全 数据库
|
存储 大数据 程序员
|
缓存 数据库 数据格式
|
SQL 存储 数据库连接
|
SQL Oracle 关系型数据库