说明:前面(一)(二)总结了数据库连接的概念以及连接数据库的字符串中的各个参数的含义。这篇随笔介绍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.OpenClose方法

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对象的常用方法的更多相关文章

  1. C#-数据库访问技术 ado.net——创建 数据库连接类 与 数据库操作方法 以及简单的数据的添加、删除、修改、查看

    数据库访问技术 ado.net 将数据库中的数据,提取到内存中,展示给用户看还可以将内存中的数据写入数据库中去 并不是唯一的数据库访问技术,但是它是最底层的数据库访问技术 1.创建数据库,并设置主外键 ...

  2. C#与数据库访问技术总结(十八)

    ADO.NET 代码综合示例 前面已经介绍过OLE DB.NET和SQL Server.NET数据提供者可以用来连接不同的数据源. 以下代码不仅综合演示了使用ADO.NET的这两种数据提供者访问数据库 ...

  3. c# 窗体开发4 数据库访问技术

    ADO.NET的名称起源于ADO(ACTIVEX DATA OBJECTS) USING SYSTEM; USING SYSTEM.COLLECTIONS.GENERIC; USING SYSTEM. ...

  4. 数据库访问技术 odbc dao rdo uda jet oledb

    一.UDA(UniversalDataAccess) 这是微软提供的通用数据访问策略.包括ADO.OLEDB和ODBC.它不光提供了数据库的访 问能力,对于其它的数据存储技术也同样支持,如目录服务.E ...

  5. C#与数据库访问技术总结(七)综合示例

    综合示例 说明:前面介绍了那么多,光说不练假把式,还是做个实例吧. 表:首先你要准备一张表,这个自己准备吧.我们以学生表为例. 1.ExecuteScalar方法 ExecuteScalar方法执行返 ...

  6. C#与数据库访问技术总结(五)之Command对象的常用方法

    Command对象的常用方法 说明:上篇总结了Command对象的几个数据成员,这节总结Command对象的常用方法. 同样,在不同的数据提供者的内部,Command对象的名称是不同的,在SQL Se ...

  7. C#与数据库访问技术总结(十七)

    使用DataSet对象访问数据库 当对DataSet对象进行操作时,DataSet对象会产生副本,所以对DataSet里的数据进行编辑操作不会直接对数据库产生影响,而是将DataRow的状态设置为ad ...

  8. C#与数据库访问技术总结(十六)之 DataSet对象

    DataSet对象 DataSet对象可以用来存储从数据库查询到的数据结果,由于它在获得数据或更新数据后立即与数据库断开,所以程序员能用此高效地访问和操作数据库. 并且,由于DataSet对象具有离线 ...

  9. C#与数据库访问技术总结(十四)之DataAdapter对象

    DataAdapter对象 DataAdapter对象主要用来承接Connection和DataSet对象. DataSet对象只关心访问操作数据,而不关心自身包含的数据信息来自哪个Connectio ...

随机推荐

  1. Mysql 关键字-保留字

    ADD ALL ALTER ANALYZE AND AS ASC ASENSITIVE BEFORE BETWEEN BIGINT BINARY BLOB BOTH BY CALL CASCADE C ...

  2. Celery-4.1 用户指南:Testing with Celery (用 Celery测试)

    任务与单元测试 在单元测试中测试任务行为的推荐方法是用mocking. Eager mode: task_always_eager 设置启用的 eager 模式不适用于单元测试. 当使用eager模式 ...

  3. python 函数和方法的区别

    一.函数和方法的区别 1.函数要手动传self,方法不用传 2.如果是一个函数,用类名去调用,如果是一个额方法,用对象去调用 举例说明: class Foo(object): def __init__ ...

  4. 监控和安全运维 1.3 cacti增加客户端监控

    二. 安装客户端(增加一个linux服务器) 1.在客户端上 安装snmp yum install -y net-snmp 2. 修改snmpd.conf vim /etc/snmp/snmpd.co ...

  5. 人工智能一之TensorFlow环境配置

    1.安装pip:sudo apt-get install python-pip python-dev 2.定义仅支持CPU的python2.7环境下TensorFlow安装包地址:export TF_ ...

  6. oracle --(四)表空间(tablespace)

    基本关系:数据库---表空间---数据段---分区---数据块 表空间(tablespace)表空间(tablespace)是包含物理数据文件的逻辑实体,存放数据库的所有可用数据,因此表空间的尺寸也是 ...

  7. oracle DDL(create、alter、drop)

    一.创建表1.创建表CREATE TABLE <table_name>( column1 DATATYPE [NOT NULL] [PRIMARY KEY], column2 DATATY ...

  8. 浏览器默认标签样式总结及css初始化程序(转)

    浏览器默认标签样式总结及css初始化程序   html中的大部分的标签都有一些糟糕的样式,有的是标签天然自带的,有的是浏览器默认设置的,我们在写网页时,这些默认的样式就会时不时的跳出来捣一下乱,搞得我 ...

  9. C++中的一类临时对象

    类名(参数名)这样的对象是临时对象,不能取地址,不能被引用,不过可以给同类型的其他对象赋值,该临时对象定以后可以进行一次操作,然后立即销毁. 当我们定义一个对象以后并不想立即给它赋初值,而是以后给它赋 ...

  10. SQL IN, NOT IN, EXISTS, NOT EXISTS

    IN与EXISTS执行流程 IN:在查询的时候,首先查询子查询的表,然后将内表和外表做一个笛卡尔积,然后按照条件进行筛选.所以相对内表比较小的时候,in的速度较快.(IN时不对NULL进行处理) EX ...