C#学习笔记(五)-ADO.NET访问数据库

1 ADO.NET概述

 ADO.NET(ActiveX Data Object)是访问数据库的一种方法

1.1 ADO.NET简介

一个非常大的优点,它与数据源断开连接时也可也使用数据.

ADO.NET可以把从数据源检索到的数据保存在本地一个叫做"数据集"的地方

1.2 ADO.NET的主要组建

.NET Framework数据提供程序是专门为睡觉处理以及快速地只进,只读访问数据而设计的组件.使用它可以连接数据源,执行命令和检索结果,直接对数据源进行操作

DataSet是专门为独立于任何数据源的数据访问而设计的.使用它,可以不必直接和数据源打交道,可以大批量地操作数据,也可以将数据绑定在控件上.

.NET Framework数据提供程序包含了访问各种数据源数据对象,他是和数据库类型有关的.目前有四种类型的数据提供程序

.NET Framework数据提供程序
.NET Framework数据提供程序说明
SQL Server .NET Framework 数据提供程序提供对 Micosoft SQL Server 7.0 版或更高版本的数据访问
包含在 System.Data.SqlClient命名空间中
OLE DB  .NET Framework 数据提供程序适用于 OLE DB 公开的数据源
包含在System.Data.OleDb命名空间中
ODBC .NET Framework 数据提供程序适用于 ODBC 公开的数据源
包含在System.Data.Odbc命名控件中
Orcale Server .NET Framework 数据提供程序适用于Oracle数据源, Oracle .NET Framework 数据提供程序支持 Oracle 客户端软件8.1.7版和更高版本包含在System.Data.OracleClient命名空间中


具体要使用那种数据提供程序,要看应用程序所使用的数据库. .NET Framework数据提供程序包括四个核心对象

对象说明
Connection建立与特定数据源的连接
Command对数据源执行命令
DataReader从数据源中读取只进且只读的数据流
DataAdapter用数据源填充DataSet并解析更新


不同的命名空间中都有相同的对象.

2. 使用Connection 对象

2.1 认识Connection对象

.NET 数据提供程序及相应的连接类
.NET 数据提供程序连接类
SQL  数据提供程序
System.Data.SqlClient命名空间中
SqlConnection
OLE DB  数据提供程序
System.Data.OleDb命名空间中
OleDbConnection
ODBC 数据提供程序
System.Data.Odbc命名空间中
OdbcConnection
Oracle  数据提供程序
System.Data.OracleClient命名空间中
OracleConnection


为了建立应用程序与数据库的连接,Connection对象提供了一些属性和方法.

属性: ConnectionString   设置/获取应用程序连接熟即可的连接字符串

方法:

Open() 使用ConnectionString属性所指定的设置打开数据库连接

Close() 关闭数据库的连接

在ADO.NET中如果使用.NET Framwork数据提供的程序操作数据库,必须显示关闭与数据库的连接,也就是说在操作完成数据库后,必须调用Connection对象的Close()方法关闭联接

建立应用程序与数据库的连接需要以下三个步骤

1.定义连接字符串

不同的数据连接字符串,其格式不同

[语法]

SQL Server数据库的连接字符串格式一般为

Data source = 服务器名;Inital Catalog = 数据库名;User ID = 用户名 ; Pwd = 密码;

数据库连接字符串由多个参数组成,其中

Data Source:指定与应用程序连接的数据库服务器的名称或IP地址,如果将本机作为应用程序的数据库服务器,则参数的值可以是"."  "(local)"  或 "127.0.0.1"

Inittal Catalog:指定应用程序要访问的数据库名称

User ID: SQL Server 数据库的用户名

Pwd: SQL  Server 数据库用户名的密码.

例如,应用程序与本机pubs数据库连接的连接字符串可以写成:

String connString = "Data Source=.; Initial  Catalog = pubs; User ID = sa; Pwd = bdqn";

密码如果为空,可以省略Pwd一项

2. 创建Connection对象

使用定义好的连接字符串创建Connection对象

[语法]

sqlConnection connection = new SqlConnection(connString)

3.打开与数据库的连接

调用Connection对象Open()方法打开数据连接

[语法]

connection.open()

在上面的三个步骤中 第一二个步骤可以调换位置

VS服务资源管理器可快速获得连接字符串,方法如下

(1)在VS中,选择菜单中的"视图"->"服务器资源管理器"命令,或按快捷键 Ctrl+Alt + S

(2)在打开的服务器管理器中,用鼠标右键单击"数据连接",选择"添加连接"命令

(3)在弹出的"添加连接"对话框中,选择数据源,输入服务器名,选择身份验证,选择要连接的数据库,确定后,就在服务器资源管理器中添加了一个数据连接

(4)选中新添加的连接,在"属性"窗口中就能找到连接字符串可,可以将他选中复制到代码中

注意:

打开数据库连接,执行命令后,要确保关闭数据库连接.

3.异常处理

3.1如何处理异常

[语法]

try

{

 //包含可能出现异常的代码

}

catch(处理的异常类型)

{

//处理异常的代码

}

try-catch 语句是把可能出现异常的代码放在try块中.如果在程序运行过程中发生了异常,就会跳转到catch块中进行错误处理,这个过程叫做捕获了异常.

如果程序执行没有发生异常,那么将会正常执行try块中的全部代码,但不会执行catch块中的语句

异常也有很多类型,我们只关注Exception类.这是.NET提供的一个异常类,表示应用程序在运行时出现的错误,比如,可以把操作数据库的代码放到try块中

try

{

conn.Open();

//....省略其他操作

conn.Close();

}

catch(Exception  ex)

{

//错误处理代码

}

数据库连接必须显示关闭.但是,如果在数据库连接关闭之前就出现了异常,程序就会跳转到catch块中,那么try块中的数据库关闭的方法就不会执行,这时候应该怎么办,NET提供了一个finally块,无论是否发生异常,出现在finally块中的语句都会执行,这样就可以把关闭数据库连接的方法写在finally块中

try

{

conn.Open();

       //省略其他操作

}

catch(Exception ex)

{

//错误代码

}

finally

{

conn.Close();

}

4.使用Command对象
4.1认识Command对象

.NET 数据提供程序及相应的连接类
.NET 数据提供程序连接类
SQL  数据提供程序
System.Data.SqlClient命名空间中
SqlCommand
OLE DB  数据提供程序
System.Data.OleDb命名空间中
OleDbCommand
ODBC 数据提供程序
System.Data.Odbc命名空间中
OdbcCommand
Oracle  数据提供程序
System.Data.OracleClient命名空间中
OracleCommand


创建Command对象的语法如下

[语法]

SqlCommand command = new SqlCommand(SQL语句,Connection对象);

创建一个Command对象需要两个参数,第一个参数是将要执行的SQL语句,第二个参数是已经创建的Connection对象

Command对象的主要属性和方法

属性:

Connection :  Command对象使用的数据库连接

CommandText: 执行的SQL语句

方法:

ExecuteNonQuery()  :执行不返回的语句,如UPDATE等

ExecuteReader(): 执行查询命令,返回DataReader对象

ExecuteScalar(): 返回单个值,如执行COUNT(*)


EXecuteScalar()方法只返回查询结果中的第一行第一列的值,当查询结果只有一个数值时,通常使用这个方法.一般情况下,这个方法的返回值需要进行显示类型转换后才能使用.

要使用Connection对象,必须有一个可用的Connection对象,使用Command对象的步骤包括以下几步

(1)创建数据库连接

(2)定义执行的SQL语句

(3)创建Command对象

(4)执行SQL语句

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值