C#_ACCP_Windows_ADO.NET(三)

来源:互联网 发布:web软件测试 编辑:程序博客网 时间:2024/05/16 00:45

ADO.NET(三)     DataReader

Command 对象的 ExcuteScalar() 方法可以从数据库检索单个值 那么如何获取数据库中的多条
记录呢 使用 Command 的 ExcuteReader() 方法 可以返回一个 DataReader 对象 读取多条记录

DataReader 对象可以从数据库中检索只读 (不可以修改) 数据 每次从查询结果中读取一行

DataReader 对象的常用属性和方法
HasRows  是否有数据 返回结果 true false
FieldCount  当前行中的列数
Read()  读取下一行数据
Close() 关闭 DataReader

使用 DataReader 对象获取多行数据

SQL 建库代码

use mastergoif exists(select * from sysdatabases where name='test2')drop database test2gocreate 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)gouse test2goif exists(select * from sysobjects where name='Students')drop table Studentsgocreate table Students(id int IDENTITY primary key not null,name varchar(20) null,age int null)goinsert 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();        }    }}


 

原创粉丝点击