首页 > 代码库 > S1/C#语言和数据库技术基础/14-使用ADO.NET访问数据库

S1/C#语言和数据库技术基础/14-使用ADO.NET访问数据库

ADO.NET提供了两个组件,用来访问和处理数据:.NET Framework数据提供程序和DataSet(数据集)

  • .NET Framework数据提供程序是专门为数据处理及快速地只进、只读访问数据而设计的组件。使用它可以连接数据源、执行命令和检索结果,直接对数据源进行操作。
  • DataSet是专门为独立于任何数据源的数据访问而设计的。使用它,可以不必直接和数据源打交道,大批量的操作数据,也可以将数据绑定在控件上。

.NET Framework数据提供程序

.NET Framework数据提供程序

说明

.NET Framework用于 SQL Server 的数据提供程序

提供对Microsoft  SQL  Server数据访问。使用 System.Data.Sql.Client 命名空间

.NET Framework用于 OLE DB 的数据提供程序

提供对 OLE DB 公开的数据源中数据的访问。使用 System.Data.Sql.OleDb 命名空间

.NET Framework用于 ODBC 的数据提供程序

提供对使用 ODBC 公开的数据源中数据的访问。使用 System.Data.Odbc 命名空间

.NET Framework用于 Oracle 的数据提供程序

适用于 Oracle 数据源,用于Oracle的.NET Framework数据提供程序支持Oracle客户端软件8.1.7版和更高版本。使用 System.Data.Oracle.Client 命名空间

EntityClient 提供程序

提供对实体数据模型(EDM)应用程序的数据访问。使用 System.Data.Entity.Client

 

.NET Framework数据提供程序的四个核心对象

对象

说明

Connection

建立与特定数据源的连接

Command

对数据源执行命令

DataReader

从数据源中读取只进且只读的数据流

DataAdapter

用数据源填充DataSet并解析更新

 

.NET数据提供程序及相应的连接类

.NET数据提供程序

连接类

命名空间

SQL数据提供程序

SqlConnection

System.Data.SqlClient

OLE  DB数据提供程序

OleDbConnection

System.Data.OleDb

ODBC数据提供程序

OdbcConnection

System.Data.Odbc

Oracle数据提供程序

OracleConnection

System.Data.OracleClient

 

Connection对象的常用属性和方法

属性

说明

ConnectionString

设置/获取应用程序连接数据库的连接字符串

方法

说明

void  Open( )

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

void  Close( )

关闭与数据库的连接

 

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

1、定义连接字符串

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

语法:

SQL Server数据库的连接字符串格式一般如下。

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

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

  • Data Source:指定与应用程序连接的数据库服务器的名称或IP地址。若将本机作为应用程序的数据库服务器,则该参数的值可以是“.”、“(local)”或“127.0.0.1”。
  • Initial Catalog:指定应用程序将要访问的数据库名称。
  • UserID: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();

在上面的这三个步骤中,第一、二步的先后顺序可以调换,可以先创建一个Connection对象,在设置它的ConnectionString属性,例如:

SqlConnection connection=new SqlConnection( );

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

Connection.ConnectionString=connString;

使用Visual  Studio的服务资源管理器获得连接字符串的方法:

(1)在Visual  Studio中,选择菜单栏中的“视图”→“服务器资源管理器”选项,或按快捷键Ctrl+Alt+S。

(2)在打开的服务器资源管理器中,右击“数据连接”选项,在弹出的快捷菜单中选择“添加连接”选项。

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

(4)选中新添加的连接,在“属性”窗口中就能够找到连接字符串了,可以将它选中复制到代码中。

注意:打开数据库连接,执行命令后,要确保关闭数据库连接。

 

异常处理

try-catch语句

语法:

try

{

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

}

catch(处理的异常类型)

{

//处理异常的代码

}

异常也有很多种类型,本课程我们只需关注Exception类。这是.NET提供的一个异常类,表示应用程序在运行时出现的错误。

try-catch-finally语句

try

{

//打开数据库连接

connection.Open();

Console.WriteLine("打开数据库连接成功");

}

catch(Exception   ex)

{

Console.WriteLine("出现异常"+ex.Message);

}

finally

{

//关闭数据库连接

connection.Close();

Console.WriteLine("关闭数据库连接成功");

}

 

使用Command对象

Command对象负责执行命令并从数据源中返回结果,它和货车的作用类似,在河的两岸搭建了桥梁之后,要有运输工具才行,Command对象就可以起到这样的作用。

.NET 数据提供程序及相应的命令类

.NET 数据提供程序

连接类

命名空间

SQL   数据提供程序

SqlCommand

System.Data.SqlClient

OLE  DB数据提供程序

OleDbCommand

System.Data.OleDb

ODBC  数据提供程序

OdbcCommand

System.Data.Odbc

Oracle 数据提供程序

OracleCommand

System.Data.OracleClient

在建立了数据库连接后,就可以使用相应的Command对象来执行数据库的操作。创建Command对象的语法如下。

语法:

SqlCommand   command=new   SqlCommand(String   sql,SqlConnection   conn);

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

Comamnd对象的主要属性和方法

属性

说明

Connection

Command对象使用的数据库连接

CommandText

执行的SQL语句

方法

说明

int   ExecuteNonQuery( )

执行不返回行的语句,如UPDATE等

SqlDataReader   ExecuteReader( )或SqlDataReader   ExecuteReader(CommandBehavior   behavior)

执行查询命令,返回DataReader对象

object   ExecuteScalar( )

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

本章主要介绍Command对象ExecuteScalar()方法。ExecuteScalar()方法只返回查询结果中第一行第一列的值。当查询结果只有一个数值时,通常调用这个方法,如使用聚合函数完成查询时。一般情况下,这个方法的返回值需要进行显示类型转换后才能使用。

要使用Command对象,必须有一个可用的Connection对象,使用Command对象的步骤如下。

(1)创建数据库连接

按照前面讲过的步骤创建一个Connection对象

(2)定义执行的SQL语句

将对数据库执行的SQL语句赋给一个字符串

(3)创建Command对象

使用已有的Connection对象和SQL语句字符串创建一个Command对象。

(4)执行SQL语句

使用Command对象的某个方法执行命令

 

数据库查询示例

示例3总我们按照前面讲的步骤来实现,自定义了一个有三个参数的方法,第一个参数是用户名,第二个参数是密码,第三个参数使用引用类型来返回处理的信息。在该方法中用Connection对象连接数据库,数据库连接成功后,通过Command对象的ExecuteScalar()方法返回查询结果。注意在使用ExecuteScalar()方法时需要将方法的返回值转换为整型后再赋值。若返回值大于1,则说明用于存在;否则此用户不存在。

S1/C#语言和数据库技术基础/14-使用ADO.NET访问数据库