ADO.NET(三) DataReader
Command 对象的 ExcuteScalar() 方法可以从数据库检索单个值 那么如何获取数据库中的多条
记录呢 使用 Command 的 ExcuteReader() 方法 可以返回一个 DataReader 对象 读取多条记录
DataReader 对象可以从数据库中检索只读 (不可以修改) 数据 每次从查询结果中读取一行
DataReader 对象的常用属性和方法
HasRows 是否有数据 返回结果 true false
FieldCount 当前行中的列数
Read() 读取下一行数据
Close() 关闭 DataReader
使用 DataReader 对象获取多行数据
SQL 建库代码
use master
go
if exists(select * from sysdatabases where name='test2')
drop database test2
go
create database test2 on primary
(
name='test2_data',
filename='D:\test2_data.mdf',
size=5mb,
maxsize=10mb,
filegrowth=1mb
)
log on
(
name='test2_log',
filename='D:\test2_log.ldf',
size=5mb,
maxsize=10mb,
filegrowth=1mb
)
go
use test2
go
if exists(select * from sysobjects where name='Students')
drop table Students
go
create table Students
(
id int IDENTITY primary key not null,
name varchar(20) null,
age int null
)
go
insert into Students (name,age) values ('张三',25)
insert into Students (name,age) values ('李四',26)
go
C#代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
namespace ADODataReader2
{
class Program
{
static void Main(string[] args)
{
//数据库连接字符串
string conStr = "Data Source=.;Initial Catalog=test2;User ID=sa;Pwd=leeho";
//创建数据库连接对象
SqlConnection conn = new SqlConnection(conStr);
//定义SQL查询语句
string sqlStr = "select * from Students";
//创建Command对象
SqlCommand comm = new SqlCommand(sqlStr, conn);
//创建DataReader对象
SqlDataReader dataReader = null;
try
{
//打开数据库连接对象
conn.Open();
//执行Command的ExecuteReader()方法 返回DataReader对象
dataReader = comm.ExecuteReader();
//如果没有读到数据
if (!dataReader.HasRows)
{
Console.WriteLine("没有数据!");
}
else
{
//循环读取下一行记录
while (dataReader.Read())
{
//ID列的值
int id = (int)dataReader["id"];
Console.WriteLine(id);
//Name列的值
string name = (string)dataReader["name"];
Console.WriteLine(name);
//Age列的值
int age = (int)dataReader["age"];
Console.WriteLine(age);
Console.WriteLine();
}
}
}
catch (Exception ex)
{
Console.Write(ex.Message);
}
finally
{
//关闭DataReader对象
dataReader.Close();
//关闭数据库
conn.Close();
}
Console.ReadKey();
}
}
}