ADO.NET——使用Connection连接数据库,使用DataReader访问数据库并返回多行数据

使用Connection连接数据库,使用DataReader访问数据库,并返回多行数据。

相关步骤:

  1. 需要引入两个命名空间

    using System.Data;
    using System.Data.SqlClient;
  2. 使用DataReader访问数据库的步骤
    • 创建SqlConnection对象,指定连接字符串
    • 创建SqlCommand对象,指定与之相关的连接对象,以及数据库操作命令文本(CommandText)
    • 打开连接
    • 调用SqlCommand对象的ExecuteReader()方法,返回SqlDataReader对象
    • 调用SqlDataReader对象的Read()函数,从数据库读取一行数据到程序中
    • 通过SqlDataReader对象的“[]”操作,访问该行数据中的每一个字段
    • 循环调用Read(),一次访问每一行数据
    • 当Read()返回false的时候,表明所有行均已读完
    • 调用SqlDataReader对象的Close()函数关闭之
    • 调用SqlConnection对象的Close()函数关闭数据库连接
  3. DataReader的工作模式
    • DataReader对象是以“向前只读(ForwardOnly)”游标进行工作
    • 在调用Read()函数之前,所有的数据均位于数据库服务器上;每调用一次Read(),就从服务器上下载一条数据下来
    • 在DataReader处理完数据之前,不能断开与数据库的连接。一旦断开,DataReader就无法再从数据库上下载数据
    • 这种模式的优点是:程序中所需要的内存较少(因为每次只保存一条数据),只读游标访问速度很快
    • 这种模式的缺点是:需要一直与数据库保持连接,会消耗较多数据库的资源

代码示例:

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6 using System.Data;
 7 using System.Data.SqlClient;
 8
 9 namespace ConsoleApplication1
10 {
11     class Program
12     {
13         static void Main(string[] args)
14         {
15             //1、创建连接对象
16             string strConn = @"server=Joe-PC;database=AdventureWorks_WroxSSRS2012;uid=sa;pwd=root";
17             SqlConnection conn = new SqlConnection(strConn);
18
19             //2、创建命令对象
20             string strCmd = "SELECT ProductCategoryID,Name FROM Production.ProductCategory";
21             SqlCommand cmd = new SqlCommand(strCmd,conn);
22
23             //3、打开数据库连接
24             conn.Open();
25
26             //4、执行命令
27             SqlDataReader dr = cmd.ExecuteReader();
28
29             //5、读取每行数据
30             while(dr.Read())
31             {
32                 // 通过 [] 运算符取得指定字段的值( object 类型,可转换为其它所需类型)
33                 Console.WriteLine("{0}:{1}", dr["ProductCategoryID"], dr["Name"]);
34             }
35
36             //6、关闭 DataReader 对象
37             //dr.Cloase();
38
39             //7、关闭数据库连接
40             //即使没有调用dr.Close(),conn.Close()也会强制dr关闭
41             conn.Close();
42         }
43     }
44 }

PS:数据库连接管理

  大多数的数据库只支持有限的连接,为避免占用资源,在完成数据库的操作之后,应当及时关闭连接。因此,必须确定成对调用连接对象的 Open 和 Close 方法。为了有效管理数据库连接的打开和关闭,还可以使用以下两种方法。

  • 使用 try...catch...finally 语句块

    在 try...catch...finally 语句块中,使用 try 语句打开数据库连接,使用 catch 语句捕获异常,使用 finally 语句确保关闭数据库的连接。

 1             string strConn = @"server=Joe-PC;database=AdventureWorks_WroxSSRS2012;uid=sa;pwd=root";
 2             SqlConnection conn = new SqlConnection(strConn);
 3
 4             try
 5             {
 6                 conn.Open();
 7                 //执行数据库操作命令
 8             }
 9             catch(Exception ex)
10             {
11                 //如果打开连接出现异常,在此进行异常处理
12             }
13             finally
14             {
15                 conn.Close();
16             }
  • 使用 using 语句块

    为更有效管理数据库的连接,C#提供了 using 语句块,用来自动管理数据库连接。当数据访问结束之后,using 语句首先自动关闭数据源连接,然后释放连接对象,因此大大简化编程。

1             string strConn = @"server=Joe-PC;database=AdventureWorks_WroxSSRS2012;uid=sa;pwd=root";
2
3             using(SqlConnection conn = new SqlConnection(strConn))
4             {
5                 conn.Open();
6                 //执行数据库操作命令
7             }
时间: 2024-08-16 01:08:09

ADO.NET——使用Connection连接数据库,使用DataReader访问数据库并返回多行数据的相关文章

java之连接数据库之JDBC访问数据库的基本操作

1.将数据库的JDBC驱动加载到classpath中,在基于JavaEE的web应用实际开发过程中通常要把目标数据库产品的JDBC驱动复制到WEB-INF/lib下. 2.加载JDBC驱动并将其注册到DriverManager中. Oracle数据库 Class.forName("oracle.jdbc.driver.oracleDriver"); SQL数据库 Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriv

node路由访问,中间件返回数据

node路由访问,中间件返回数据 定义一个变量存放json数据,中间件接受数据 var responseData; router.use(function(req, res, next) { responseData = { code: 0, message: '' }; next(); }); 访问路由,返回相应的数据 router.get('/', function(req, res, next) { responseData.code = 1; responseData.message =

ADO.NET——Connection(连接数据库)

在ADO.NET对象模型中,Connection对象代表了与数据源之间的连接. .NET框架中有两个Connection对象:一个是OleDbConnection,用于大多数的数据库连接,一个是SqlConnection,是MS开发的专门用于针对SQLServer的连接.在创建Connection对象之前,你必须先引用System.Data.OleDb或者System.Data.SqlClient和System.Data三个名空间. 一,基本连接示例 对于连接对象的使用,可以类比VB中ADO的使

使用ADO.NET访问数据库-----的解析

一.ADO.NET :用于连接数据库的技术 1.ADO.NET分为两大组件 DataSet:数据集 .NET FRAMWORK :用于连接到数据库,发送命令,检索结果 2.ADO.NET四大核心对象 Connection Command DataAdapter DataReader 二.使用ADO.NET访问数据库 1.首先导入命名空间System.Data.SqlClient 2.创建连接字符串 String constr="Data Source=.;Initial Catalog=Scho

使用ADO.NET 访问数据库

一.ADO.NET :用于连接数据库的技术 1.ADO.NET分为两大组件 DataSet:数据集 .NET FRAMWORK :用于连接到数据库,发送命令,检索结果 2.ADO.NET四大核心对象 Connection Command DataAdapter DataReader 二.使用ADO.NET访问数据库 1.首先导入命名空间System.Data.SqlClient 2.创建连接字符串 String constr="Data Source=.;Initial Catalog=Scho

使用 ado.net访问数据库

一.ADO.NET :用于连接数据库的技术 1.ADO.NET分为两大组件 DataSet:数据集 .NET FRAMWORK :用于连接到数据库,发送命令,检索结果 2.ADO.NET四大核心对象   Connection   Command   DataAdapter   DataReader 二.使用ADO.NET访问数据库 1.首先导入命名空间System.Data.SqlClient 2.创建连接字符串 String constr="Data Source=.;Initial Cata

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

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

在.NET Framework 应用程序中使用ADO.NET访问数据库

一.常用的数据访问组件 1.  访问SQL Server数据库系统所用到的组件 SqlConnection………连接SQL Server数据库系统 SqlCommand………..向SQL Server数据库系统提交执行SQL命令 SqlDataReader………阅读执行SQL命令返回的数据 SqlDataAdapter…......利用此组件可以将数据库中的数据填充到DataSet数据集 注意:使用上述组件需要引入System.Data.SqlClient命名空间. 2.  访问Access数据

ADO.NET——Command(执行SQL) & DataReader(读取数据库)

一,关于两个对象的基础知识 1,Command Command对象主要用于对数据源执行SQL命令并返回结果. ADO.NET提供了Connection来连接数据库,同时也提供了Command对象来查询数据库.同Connection对象一样,Command也有两种:OleDbCommand和SqlCommand.其区别同Connection对象. Command对象有一个属性:CommandType(sql语句或者存储过程):三个重要方法:ExecuteNonQuery(增.删.改影响的行数).E