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语句