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 ...
随机推荐
- IP Fragmentation(IP分片)
https://www.cisco.com/c/en/us/tech/ip/index.html IP协议在传输数据包时,将数据报文分为若干分片进行传输,并在目标系统中进行重组,这一过程称为分片(Fr ...
- Android实现推送方式解决方案 - 长连接+心跳机制(MQTT协议)
本文介绍在Android中实现推送方式的基础知识及相关解决方案.推送功能在手机开发中应用的场景是越来起来了,不说别的,就我们手机上的新闻客户端就时不j时的推送过来新的消息,很方便的阅读最新的新闻信息. ...
- 树结构ztree的 ajax交互的简单使用
今天做前端页面要用到树结构,用了第三方插件ztree,搞了好久不过终于弄出来了,, 一点小心得.(用的版本 V3 ) 首先看下载的文件结构: 一:将要用到的CSS 和 JS 拷贝到工程中,我这里在工程 ...
- 把python2.6升级到python2.7(同样适用于把python2升级到python3)
在启用https过程中,在生成CSR(证书请求文件)时,报错了,说python2.6已被python团队抛弃了,所以升级python到2.7 话不多说,直接上代码: 步骤1:下载python2.7.1 ...
- QString 乱谈(1)
一个月前尝试写了一篇关于QStringLiteral,存盘时MoinMoin罢工了.吸取一点经验,还是写成短篇吧 可是,可是,QString不就是简简单单一个字符串么?能有什么可谈的.真的么... ( ...
- 机器学习:调整kNN的超参数
一.评测标准 模型的测评标准:分类的准确度(accuracy): 预测准确度 = 预测成功的样本个数/预测数据集样本总数: 二.超参数 超参数:运行机器学习算法前需要指定的参数: kNN算法中的超参数 ...
- Java-API-Package:org.springframework.beans.factory.annotation
ylbtech-Java-API-Package:org.springframework.beans.factory.annotation 1.返回顶部 1. @NonNullApi @NonNull ...
- 第八章 Java中的并发工具类
等待多线程完成的CountDownLatch countDownLatch允许一个或多个线程等待其他线程完成操作. public class CountDownLatchTest { static C ...
- linux命令-mke2fs
想在磁盘下写东西,必须要先格式化 /////////////////////////////////////////////////////////////////////////////////// ...
- hadoop再次集群搭建(3)-如何选择相应的hadoop版本
之前接触过很多很多hadoop版本,现在重新搭建平台,面临选择哪个版本的问题. 当我们决定是否采用某个软件用于开源环境时,通常需要考虑以下几个因素: (1)是否为开源软件,即是否免费. (2) 是否有 ...