ADO.NET读书笔记系列之------Connection对象

来源:互联网 发布:充电电流检测软件 编辑:程序博客网 时间:2024/05/20 15:37
 

一、特点介绍

ADO.NET对象模型中,Connection对象代表了与数据库之间的连接。可以使用Connection对象的属性来指定用户凭据以及数据源的位置。

 

二、使用介绍

1、基本使用

string strConn=”data source =192.168.1.81;initial catalog =Northwind;persist security info=false; user id=sa;password=;”;

SqlConnection cn = new SqlConnection(strConn);

cn.Open();

………..

cn.Close();

 

2、连接池

默认情况下使用连接池;

当不想使用时:在Ole DB连接字符串中加入”OLE DB Service=-4”;

                   Sql连接字符串中加入”Pooling=false”;

 

3、与其他对象关系

Ⅰ、创建Commands

     string strConn=”………”;

     SqlConnection cn=new SqlConnection(strConn);

     cn.Open();

     SqlCommand cmd = cn.CreateCommand();

Ⅱ、启动事务

     string strConn=”………”;

     SqlConnection cn=new SqlConnection(strConn);

     cn.Open();

     SqlTransaction txn = cn.BeginTransaction();

 

三、属性方法事件介绍

1、属性

ConnectionString: 连接字符串,其中包含源数据库名称和建立初始连接所需的其他参数。默认值为空字符串。只能在Connection未与数据源连接时设置其属性,当连接到数据源时,属性是只读的。

ConnectionTimeOut: 等待连接打开的时间(以秒为单位)。默认值为 15 秒。

Database当前数据库的名称或连接打开后要使用的数据库的名称。默认值为空字符串。

DataSource要连接的 SQL Server 实例的名称。默认值为空字符串。

StateConnectionState值的按位组合。默认值为Closed

 

成员名称

说明

Broken

与数据源的连接中断。只有在连接打开之后才可能发生这种情况。可以关闭处于这种状态的连接,然后重新打开。

16

Closed

连接处于关闭状态。

0

Connecting

连接对象正在与数据源连接。

2

Executing

连接对象正在执行命令。

4

Fetching

连接对象正在检索数据。

8

Open

连接处于打开状态。

1

 

ServerVersionSQL Server 实例的版本。版本的格式为 ##.##.####,其中前两位是主版本,中间两位是次版本,最后四位是发布版本。该字符串的格式为 major.minor.build,其中 major minor 必须为两位数,build 必须为四位数。

 

PacketSize: 网络数据包的大小(以字节为单位)默认值为 8192。如果应用程序执行批量复制操作,或者发送或接收大量的文本或图像数据,则使用比默认大小大的数据包可提高效率,因为它可减少网络的读取和写入操作。如果应用程序发送或接收少量信息,则可以将数据包大小设置为 512 字节,该设置足以应付大多数数据传送操作。对于大多数应用程序而言,最好使用默认的数据包大小。

PacketSize 可以是 512 32767 字节范围内的一个值。如果该值超出了这个范围,就会产生异常。

 

 

2、方法

BeginTransaction:开始数据事务

ChangeDatabase:在一个打开的连接上更改当前数据库

Close:关闭连接

CreateCommand:为当前连接创建一个SqlCommand

Open:打开连接

 

3、事件

InfoMessage:当 SQL Server 返回一个警告或信息性消息时发生。

Sql Server 返回严重度等于或小于 10 的消息时,会激发 InfoMessage 事件。严重度在 11 20 之间的消息会引发错误,而严重度超过 20 的消息将导致连接关闭。

 

StateChange:当连接状态更改时发生。只要Connection对象的State属性值发生变化,该对象的StateChange事件就会被触发。