C#与数据库访问技术总结(三)之 Connection对象的常用方法
说明:前面(一)(二)总结了数据库连接的概念以及连接数据库的字符串中的各个参数的含义。这篇随笔介绍connection对象的常用方法。
Connection对象的常用方法
Connection类型的对象用来连接数据源。在不同的数据提供者的内部,Connection对象的名称是不同的,在SQL Server Data Provider里叫SqlConnection,而在OLE DB Data Provider里叫OleDbConnection。
下面将详细介绍Connection类型对象的常用方法。
1.构造函数
构造函数用来构造Connection类型的对象。对于SqlConnection类,其构造函数说明如下表所示。
函数定义 |
参数说明 |
函数说明 |
SqlConnection() |
不带参数 |
创建SqlConnection对象 |
SqlConnection(string connectionstring) |
连接字符串 |
根据连接字符串,创建SqlConnection对象 |

1 第1种:
2
3 String ConnectionString =”server=(local); Initial Catalog =stu; ”;
4
5 SqlConnection conn=new SqlConnection();
6
7 conn.ConnectionString=ConnectionString;
8
9 conn.Open();
10
11 第2种
12
13 String cnn=”server=(local); Initial Catalog =stu; ”;
14
15 SqlConnection conn=new SqlConnection(cnn);
16
17 conn.Open();

显然使用第2种方法输入的代码要少一点,但是两种方法执行的效率并没有什么不同,另外,
如果需要重用Connection对象去使用不同的身份连接不同的数据库时,使用第一种方法则非常有效。
例如:

1 SqlConnection conn=new SqlConnection();
2
3 conn.ConnectionString=connectionString1;
4
5 conn.Open();
6
7 //访问数据库,做一些事情
8
9 conn.Close();
10
11 conn.ConnectionString=connectionString2;
12
13 conn.Open();
14
15 //访问数据库,做另外一些事情
16
17 conn.Close();

注意:只有当一个连接关闭以后才能把另一个不同的连接字符串赋值给Connection 对象。
如果不知道Connection对象在某个时候是打开是关闭时,可以检查Connection对象的State属性,它的值可以是Open,也可以是Closed,这样就可以知道连接是否是打开的。
下表说明了OleDbConnection类的构造函数。可以看出,它们和SqlConnection类的构造函数非常相近。
函数定义 |
参数说明 |
函数说明 |
OleDbConnection() |
不带参数 |
创建OleDbConnection对象 |
OleDbConnection(string connectionstring) |
连接字符串 |
根据连接字符串,创建OleDbConnection对象 |
2.Open和Close方法
Open和Close方法分别用来打开和关闭数据库连接,无参无返回值。
Open方法:使用ConnectionString所指定的属性设置打开数据库连接
Close方法:关闭与数据库的连接,这是关闭任何打开连接的首选方法
注意:数据库连接是很有价值的资源,因为连接要使用到宝贵的系统资源,如内存和网络带宽,因此对数据库的连接必须小心使用,
要在最晚的时候建立连接(调用Open方法),在最早的时候关闭连接(调用Close方法)。
也就是说在开发应用程序时,不再需要数据连接时应该立刻关闭数据连接。
这点看起来很简单,要达到这个目标也不难,关键是要有这种意识。
3、Connection对象连接数据源代码示例
以下代码演示使用连接字符串创建数据库连接的一般方式。

1 //连接Access数据库
2
3 string connStr="Provider= Microsoft.Jet.OleDB.4.0;Data Source=D:\login.mdb"
4
5 //根据字符串创建OleDbConnection连接对象
6
7 OleDbConnection objConnection=new OleDbConnection(strConnect);
8
9 //打开数据源连接
10
11 if(objConnection.State==ConnectionState.Closed)
12
13 {
14
15 objConnection.Open();
16
17 }
18
19 //使用结束后关闭数据源连接
20
21 if(objConnection.State==ConnectionState.Open)
22
23 {
24
25 objConnection.Close();
26
27 }

在这段代码里的业务逻辑是:
(1)创建连接字符串,从中可以看出Connection对象是使用OleDB类型的Data Provider,连接到D盘下login.mdb的Access数据库中。
(2)根据连接字符串,创建Connection类型的对象,这里用到了OleDbConnection。
(3)打开数据源的连接。
(4)执行数据库的访问操作代码。
(5)关闭数据源连接。
完整案例
1、利用SQL Server2000建立一个数据库Student,并建立相应的表studentInfo
2、用Visual C#20XX建立一个基于Window的应用程序,并添加一个按钮。
3、双击按钮,自动切换到后台代码编辑文件Form1.cs中,并自动添加了与此按钮的Click事件相关的处理程序button1_Click(object sender, EventArgs e)
4、在Form1.cs文件中添加如下命名空间:
using System.Data.SqlClient;
5、在事件处理程序button1_Click中添加代码:

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Data.SqlClient; namespace DataBase { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { try { SqlConnection conn = new SqlConnection(); //conn.ConnectionString = "server=(local);user id=sa;Initial Catalog=Student;pwd=;"; conn.ConnectionString = "server=(local);Initial Catalog=Student;Integrated Security=SSPI;"; conn.Open(); if (conn.State == ConnectionState.Open) { MessageBox.Show("连接已经打开"); } conn.Close(); if (conn.State == ConnectionState.Closed) { MessageBox.Show("连接已经关闭"); } } catch (Exception ex) { MessageBox.Show("数据库连接失败" + ex.Message); } } } }
C#与数据库访问技术总结(三)之 Connection对象的常用方法的更多相关文章
- C#-数据库访问技术 ado.net——创建 数据库连接类 与 数据库操作方法 以及简单的数据的添加、删除、修改、查看
数据库访问技术 ado.net 将数据库中的数据,提取到内存中,展示给用户看还可以将内存中的数据写入数据库中去 并不是唯一的数据库访问技术,但是它是最底层的数据库访问技术 1.创建数据库,并设置主外键 ...
- C#与数据库访问技术总结(十八)
ADO.NET 代码综合示例 前面已经介绍过OLE DB.NET和SQL Server.NET数据提供者可以用来连接不同的数据源. 以下代码不仅综合演示了使用ADO.NET的这两种数据提供者访问数据库 ...
- c# 窗体开发4 数据库访问技术
ADO.NET的名称起源于ADO(ACTIVEX DATA OBJECTS) USING SYSTEM; USING SYSTEM.COLLECTIONS.GENERIC; USING SYSTEM. ...
- 数据库访问技术 odbc dao rdo uda jet oledb
一.UDA(UniversalDataAccess) 这是微软提供的通用数据访问策略.包括ADO.OLEDB和ODBC.它不光提供了数据库的访 问能力,对于其它的数据存储技术也同样支持,如目录服务.E ...
- C#与数据库访问技术总结(七)综合示例
综合示例 说明:前面介绍了那么多,光说不练假把式,还是做个实例吧. 表:首先你要准备一张表,这个自己准备吧.我们以学生表为例. 1.ExecuteScalar方法 ExecuteScalar方法执行返 ...
- C#与数据库访问技术总结(五)之Command对象的常用方法
Command对象的常用方法 说明:上篇总结了Command对象的几个数据成员,这节总结Command对象的常用方法. 同样,在不同的数据提供者的内部,Command对象的名称是不同的,在SQL Se ...
- C#与数据库访问技术总结(十七)
使用DataSet对象访问数据库 当对DataSet对象进行操作时,DataSet对象会产生副本,所以对DataSet里的数据进行编辑操作不会直接对数据库产生影响,而是将DataRow的状态设置为ad ...
- C#与数据库访问技术总结(十六)之 DataSet对象
DataSet对象 DataSet对象可以用来存储从数据库查询到的数据结果,由于它在获得数据或更新数据后立即与数据库断开,所以程序员能用此高效地访问和操作数据库. 并且,由于DataSet对象具有离线 ...
- C#与数据库访问技术总结(十四)之DataAdapter对象
DataAdapter对象 DataAdapter对象主要用来承接Connection和DataSet对象. DataSet对象只关心访问操作数据,而不关心自身包含的数据信息来自哪个Connectio ...
随机推荐
- 基于Python语言使用RabbitMQ消息队列(二)
工作队列 在第一节我们写了程序来向命名队列发送和接收消息 .在本节我们会创建一个工作队列(Work Queue)用来在多个工人(worker)中分发时间消耗型任务(time-consuming tas ...
- SpringCloud微服务实战——第二章Springboot
Spring Boot项目工程 src/main/java:主程序入口HelloApplication,可以通过直接运行该类来启动Spring Boot应用. src/main/resources:配 ...
- Verilog数组表示及初始化
(转)Verilog数组表示及初始化 这里的内存模型指的是内存的行为模型.Verilog中提供了两维数组来帮助我们建立内存的行为模型.具体来说,就是可以将内存宣称为一个reg类型的数组,这个数组中的任 ...
- unix下网络编程之I/O复用(三)
poll函数 在上文unix下网络编程之I/O复用(二)中已经介绍了select函数的相关使用,本文将介绍另一个常用的I/O复用函数poll.poll提供的功能与select类似,不过在处理流设备时, ...
- java代码继承难点。构造方法的调用
总结:子类默认调用父类的无参构造方法.重写时,父类方法将被覆盖,不被调用,在子类中可以使用super.方法():可以实现 运行显示: evente.x:55 evente.x:55 B.y:57 pa ...
- 使用like查询text类型字段
使用like查询text类型字段 public bool Exists(GetReadType GRT, ClientMessageGetRead TypeID, string MessageID, ...
- 实验吧CTF题库-安全杂项
XDCTF misc200: 题目提示: 下载文件 用foremost分离文件 接下来用archpr 4.53进行明文攻击 先把00002700.zip中的readme.txt提取出来压缩成zip文件 ...
- 2015.12.24(圣诞节) 解决Oralce数据库将具有相同属性的多行合并为一行的简单方法多年想要wmsys.wm_concat
用到Oralce10g以后增加的函数wmsys.wm_concat 例如这张表的有两个字段,要按airport_id合并成两行可用sql语句 select airport_id, wmsys.wm ...
- ios中的三种弹框《转》
目前为止,已经知道3种IOS弹框: 1.系统弹框-底部弹框 UIActionSheet (1)用法:处理用户非常危险的操作,比如注销系统等 (2)举例: UIActionSheet *sheet = ...
- DAY10-MYSQL表操作
一 存储引擎介绍 存储引擎即表类型,mysql根据不同的表类型会有不同的处理机制 http://www.cnblogs.com/guoyunlong666/p/8491702.html 二 表介绍 表 ...