ADO.NET笔记——使用Connection连接数据库,使用Command对象的ExecuteReader()方法创建DataReader对象返回多行数据
2015-03-14 16:50
976 查看
使用Connection连接数据库,使用DataReader访问数据库,并返回多行数据。
相关步骤:
需要引入两个命名空间
使用DataReader访问数据库的步骤
创建SqlConnection对象,指定连接字符串
创建SqlCommand对象,指定与之相关的连接对象,以及数据库操作命令文本(CommandText)
打开连接
调用SqlCommand对象的ExecuteReader()方法,返回SqlDataReader对象
调用SqlDataReader对象的Read()函数,从数据库读取一行数据到程序中
通过SqlDataReader对象的“[]”操作,访问该行数据中的每一个字段
循环调用Read(),一次访问每一行数据
当Read()返回false的时候,表明所有行均已读完
调用SqlDataReader对象的Close()函数关闭之
调用SqlConnection对象的Close()函数关闭数据库连接
DataReader的工作模式
DataReader对象是以“向前只读(ForwardOnly)”游标进行工作
在调用Read()函数之前,所有的数据均位于数据库服务器上;每调用一次Read(),就从服务器上下载一条数据下来
在DataReader处理完数据之前,不能断开与数据库的连接。一旦断开,DataReader就无法再从数据库上下载数据
这种模式的优点是:程序中所需要的内存较少(因为每次只保存一条数据),只读游标访问速度很快
这种模式的缺点是:需要一直与数据库保持连接,会消耗较多数据库的资源
代码示例:
PS:数据库连接管理
大多数的数据库只支持有限的连接,为避免占用资源,在完成数据库的操作之后,应当及时关闭连接。因此,必须确定成对调用连接对象的 Open 和 Close 方法。为了有效管理数据库连接的打开和关闭,还可以使用以下两种方法。
使用 try...catch...finally 语句块
在 try...catch...finally 语句块中,使用 try 语句打开数据库连接,使用 catch 语句捕获异常,使用 finally 语句确保关闭数据库的连接。
使用 using 语句块
为更有效管理数据库的连接,C#提供了 using 语句块,用来自动管理数据库连接。当数据访问结束之后,using 语句首先自动关闭数据源连接,然后释放连接对象,因此大大简化编程。
相关步骤:
需要引入两个命名空间
using System.Data; using System.Data.SqlClient;
使用DataReader访问数据库的步骤
创建SqlConnection对象,指定连接字符串
创建SqlCommand对象,指定与之相关的连接对象,以及数据库操作命令文本(CommandText)
打开连接
调用SqlCommand对象的ExecuteReader()方法,返回SqlDataReader对象
调用SqlDataReader对象的Read()函数,从数据库读取一行数据到程序中
通过SqlDataReader对象的“[]”操作,访问该行数据中的每一个字段
循环调用Read(),一次访问每一行数据
当Read()返回false的时候,表明所有行均已读完
调用SqlDataReader对象的Close()函数关闭之
调用SqlConnection对象的Close()函数关闭数据库连接
DataReader的工作模式
DataReader对象是以“向前只读(ForwardOnly)”游标进行工作
在调用Read()函数之前,所有的数据均位于数据库服务器上;每调用一次Read(),就从服务器上下载一条数据下来
在DataReader处理完数据之前,不能断开与数据库的连接。一旦断开,DataReader就无法再从数据库上下载数据
这种模式的优点是:程序中所需要的内存较少(因为每次只保存一条数据),只读游标访问速度很快
这种模式的缺点是:需要一直与数据库保持连接,会消耗较多数据库的资源
代码示例:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data; using System.Data.SqlClient;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
//1、创建连接对象
string strConn = @"server=Joe-PC;database=AdventureWorks_WroxSSRS2012;uid=sa;pwd=root";
SqlConnection conn = new SqlConnection(strConn);
//2、创建命令对象
string strCmd = "SELECT ProductCategoryID,Name FROM Production.ProductCategory";
SqlCommand cmd = new SqlCommand(strCmd,conn);
//3、打开数据库连接
conn.Open();
//4、执行命令
SqlDataReader dr = cmd.ExecuteReader();
//5、读取每行数据
while(dr.Read())
{
// 通过 [] 运算符取得指定字段的值( object 类型,可转换为其它所需类型)
Console.WriteLine("{0}:{1}", dr["ProductCategoryID"], dr["Name"]);
}
//6、关闭 DataReader 对象
//dr.Cloase();
//7、关闭数据库连接
//即使没有调用dr.Close(),conn.Close()也会强制dr关闭
conn.Close();
}
}
}
PS:数据库连接管理
大多数的数据库只支持有限的连接,为避免占用资源,在完成数据库的操作之后,应当及时关闭连接。因此,必须确定成对调用连接对象的 Open 和 Close 方法。为了有效管理数据库连接的打开和关闭,还可以使用以下两种方法。
使用 try...catch...finally 语句块
在 try...catch...finally 语句块中,使用 try 语句打开数据库连接,使用 catch 语句捕获异常,使用 finally 语句确保关闭数据库的连接。
string strConn = @"server=Joe-PC;database=AdventureWorks_WroxSSRS2012;uid=sa;pwd=root"; SqlConnection conn = new SqlConnection(strConn); try { conn.Open(); //执行数据库操作命令 } catch(Exception ex) { //如果打开连接出现异常,在此进行异常处理 } finally { conn.Close(); }
使用 using 语句块
为更有效管理数据库的连接,C#提供了 using 语句块,用来自动管理数据库连接。当数据访问结束之后,using 语句首先自动关闭数据源连接,然后释放连接对象,因此大大简化编程。
string strConn = @"server=Joe-PC;database=AdventureWorks_WroxSSRS2012;uid=sa;pwd=root"; using(SqlConnection conn = new SqlConnection(strConn)) { conn.Open(); //执行数据库操作命令 }
相关文章推荐
- ado.net连接模式访问数据库中datareader的返回多个结果集和mars的使用
- WINCC中使用ADO对象连接数据库 例子 常用属性 方法 原创
- asp.net mvc 3.0详细笔记__09__创建数据库,应用EF连接模型类和数据表
- [2004-8-4]VB.Net学习笔记,使用ADO.Net对象访问数据库,将结果写入ListView
- ADO.NET笔记——利用Command对象的ExecuteScalar()方法返回一个数据值
- ADO.NET访问数据库-SqlCommand的ExecuteReader方法一般配合sqldatareader使用
- 关于在英创em9161板上使用ADO.net连接远程数据库提示 “无法找到 PInvoke dll"dbnetlib.dll"”问题解决方法
- Synchronization Services for ADO.NET - 创建一个偶然连接数据库系统。(数据同步系统)
- 使用ADO.NET类及方法实现数据库的查询并返回一个Object 数组
- 创建Accress 数据库连接文件UDL/如何使用 ADO 的数据链接文件
- 基于ADO.NET方法的数据库连接的数据发生器控件dotConnect for Oracle
- ADO.NET的结构,提供程序和数据连接,执行数据库命令Command对象
- ADO.Net:使用DataReader向数据库中插入数据
- ADO.NET各种数据返回方法使用3
- ADO.Net(上) Connection对象、Command对象、DataReader对象
- ADO.NET对象组成与数据库连接方法
- 基于ADO.NET方法的数据库连接的数据发生器控件dotConnect for Oracle
- ADO.NET笔记——使用DataSet返回数据
- ASP.NET在IIS上部署使用Oracle数据库无法连接数据库解决方法(转载)
- Visual C# 2008+SQL Server 2005 数据库与网络开发-- 7.3 使用ADO .NET处理数据