DateReader对象提供了用循序的、只读的方式读取Command对象获取的数据结果集正是因为DateReader是以循序的方法连续地读取数据,所以DateReader会以独占的方式打开数据库连接。

由于DateReader只执行读取操作,并且每次只在内存缓冲区里存储结果集的一条数据,所以使用DateReader对象的效率比较高,如果查询大量数据,同时不需要随机访问和修改数据,DateReader是优先的选择。

DateReader对象属性

FieldCount属性表示记录中有多少字段

HasRows属性用来表示DateReader是否包含数据

IsClosed属性表示DateReader是否关闭

Close方法将DateReader对象关闭

GetDateTYpeName方法取得指定字段的数据形态

GetName方法取得指定字段的字段名称

GetOrdinal方法取得指定字段名称在记录中的顺序

GetValue方法取得指定字段的数据

GetValues方法取得全部字段的数据

Read方法读取下一条记录

string conn = "server=192.168.100.222;user=sa;pwd=p@ssw1rd;database=pwd1";
SqlConnection myconn = new SqlConnection();
myconn.ConnectionString = conn;
try
{
myconn.Open();
string str = "select * from book";
SqlCommand mycom=new SqlCommand(str,myconn);
SqlDataReader mdr;
mdr = mycom.ExecuteReader();
if (mdr.HasRows)
{
Console.WriteLine("book表中有数据");
}
else
{
Console.WriteLine("bookl表中没有数据");
}
while (mdr.Read())
{
Console.Write(mdr[0]+" ");
Console.Write(mdr[1]+" ");
Console.Write(mdr[2]+" ");
Console.WriteLine();
}
}
catch (Exception ex)
{ Console.WriteLine(ex.Message.ToString());
}
finally
{
myconn.Close();
}
Console.ReadKey();

  

SqlDataReader不能实例化,因为没有构造函数

SqlDataReader dr=SqlCommand.ExecuteReader();

//为什么这么写?SqlDataReader不能实例化,而SqlCommand.ExecuteReader方法返回了一个对象,(public SqlDataReader ExecuteReader();{return (SqlDataReader)内容}

实例1 判断PWD1表中是否是数据(提示;通过查询mytable返回DateReader对象,经HasRows属性判断mytable中是否有数据)
static void Main(string[] args)
{
string str = "server=192.168.100.222;user=sa;pwd=p@ssw1rd;database=pwd1";
SqlConnection mycon = new SqlConnection(str);
mycon.Open();
string sql = "select * from book";
SqlCommand mycom = new SqlCommand(sql,mycon);
//声明DateReader
SqlDataReader mydr;
mydr = mycom.ExecuteReader();
//判断是否有数据
if (mydr.HasRows)
{
Console.WriteLine("pwd1中存在数据");
}
else
{
Console.WriteLine("pwd1中不存在任何数据");
}
//看看这个表里面有几个字段
Console.WriteLine(myder.fildcount);
//看看dateReader是否关闭会显示false
Console.WriteLine(mydr.islosed);
mydr.Close();
//这次会显示true
Console.WriteLine(mydr.islosed);
mycon.Close();
Console.ReadKey(); ***以后写代码的时候这么写***
Try
{
连接数据库和打开数据库就写在这里面
}
Catch(exception ex)
{
//程序错误的时候会显示
Console.writelin(ex.message.tostring());
} Finally
{
//这里面写关闭数据库
} Getvalues
//声明DateReader
SqlDataReader mydr;
mydr = mycom.ExecuteReader(); 首先声明一个object数组,因为object是所有类型的基类,一个数据表有int char varchar bit date……..等所以要用object基类
//声明object数组多长呢?那就需要我们的函数fielCount了,他能统计我们表中有多少个字段
Object [] myobj =new object[mydr.fielCount];
//全部显示myobj数组里面的数据,需要循环
Mydr.getValues(myobj);
While(mydr.Read())
Foreach(obect outobj in myobj)
{
Mydr.getValues(myobj);
Console.writeline(outobj+”\t”);
}

  

DateReader读取数据的更多相关文章

  1. SQL Server数据库读取数据的DateReader类及其相关类

    之前学了几天的SQL Server,现在用C#代码连接数据库了. 需要使用C#代码连接数据库,读取数据. 涉及的类有: ConfigurationManage SqlConnection SqlCom ...

  2. struts2中从后台读取数据到<s:select>

    看到网上好多有struts2中从后台读取数据到<s:select>的,但都 不太详细,可能是我自己理解不了吧!所以我自己做了 一个,其中可能 有很多不好的地方,望广大网友指出 结果如图 p ...

  3. [MVC4]ASP.NET MVC4+EF5(Lambda/Linq)读取数据

    继续上一节初始ASP.NET MVC4,继续深入学习,感受了一下微软的MVC4+EF5(EntityFramework5)框架的强大,能够高效的开发出网站应用开发系统,下面就看一下如何用MVC4+EF ...

  4. ubuntu server 12.04U盘安装,提示无法挂载安装光盘或光盘读取数据出错

    今天用Ultraiso将Ubuntu server 12.04 刻入U盘中安装系统,中间提示错误:1.检测不到cdrom(即U盘没有挂载上):2.从光盘中读取数据出错.问题如下图所示: 上网搜了下解决 ...

  5. MySQL数据库中tinyint类型字段读取数据为true和false

    今天遇到这么一个问题,公司最近在做一个活动,然后数据库需要建表,其中有个字段是关于奖励发放的状态的字段,结果读取出来的值为true 一.解决读取数据为true/false的问题 场景: 字段:stat ...

  6. My Game --文件读取数据

    My Game --线段数据 中说到背景的绘制由贝赛尔曲线生成线段,用 DrawNode 画多边形,同时一张背景有两座山,一座山有两条以上贝赛尔曲线保存,用了嵌套的数据类:Bezier,LineLay ...

  7. Java—从文件中读取数据

    1.FileInputStream() // 构建字节输入流对象,参数为文件名 FileInputStream fin = new FileInputStream("message" ...

  8. 10天学会phpWeChat——第三天:从数据库读取数据到视图

    在第二天,我们创建了我们的第一个phpWeChat功能模块,但是比较简单.实际生产环境中,我们不可能有如此简单的需求.更多的情况是数据存储在MySql数据库中,我们开发功能模块的作用就是将这些数据从M ...

  9. 用EXCEL内嵌的Visual Basic for Application 编程,通过 UGSimple USB-GPIB 控制器来驱动仪器34401A,并从34401A读取数据

    现在市场上有很多中USB-GPIB 控制器,或叫 USB 转GPIB链接线. 每种GPIB控制器都有它的 函数库(dll库).各种GPIB 控制器的价钱插别很大.这里以一种价钱较便宜的USB-GPIB ...

随机推荐

  1. css细节复习笔记——基本视觉格式化

    css包含如此开放.如此强大的一个模型,对于这样一个模型,可以有无数种方法结合应用各种属性,可以得到的效果数不胜数. 基本框 css假定每个元素都会生成一个或多个矩形框,这称为元素框.各元素中心有一个 ...

  2. JAVA特性一:封装

    封装:是指隐藏对象的属性和实现细节,仅对外提供公共访问方式. 封装概念详解:封装是把过程和数据包围起来,对数据的访问只能通过已定义的接口. 面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完 ...

  3. 如何让Syncthing始终使用同一个设备ID?

    设备ID(device id)是Syncthing最重要的参数之一,所有节点的发现.连接等操作,全部是基于这个设备ID!对于已经建立起来的P2P网络,保持重要节点的设备ID唯一性是非常重要的!!!!那 ...

  4. 【Oracle 12c】最新CUUG OCP-071考试题库(54题)

    54.(12-15) choose the best answer: View the Exhibit and examine the structure of the ORDER_ITEMS and ...

  5. [bzoj3123] [SDOI2013]森林 主席树+启发式合并+LCT

    Description Input 第一行包含一个正整数testcase,表示当前测试数据的测试点编号.保证1≤testcase≤20. 第二行包含三个整数N,M,T,分别表示节点数.初始边数.操作数 ...

  6. [flex] as3.0 实现基于air的简单浏览器

    <?xml version="1.0" encoding="utf-8"?> <s:WindowedApplication xmlns:fx= ...

  7. [Objective-C语言教程]指针(15)

    Objective-C中的指针简单易学.使用指针可以更轻松地执行某些Objective-C编程任务,并且在不使用指针的情况下无法执行其他任务(如动态内存分配). 所以有必要学习指向成为一个完美的Obj ...

  8. 字符串模式匹配算法1 - BF和KMP算法

    在字符串S中定位/查找某个子字符串P的操作,通常称为字符串的模式匹配,其中P称为模式串.模式匹配有多种算法,这里先总结一下BF算法和KMP算法. 注意:本文在讨论字符位置/指针/下标时,全部使用C语法 ...

  9. Python Socket 编程示例 Echo Server

    简评:我们已经从「Python Socket 编程概览」了解了 socket API 的概述以及客户端和服务器的通信方式,接下来让我们创建第一个客户端和服务器,我们将从一个简单的实现开始,服务器将简单 ...

  10. 10分钟教你用Python打造天气机器人+关键字自动回复+定时发送

    01 前言 Hello,各位小伙伴.自上次我们介绍了Python实现天气预报的功能以后,那个小程序还有诸多不完善的地方,今天,我们再次来完善一下我们的小程序.比如我们想给机器人发“天气”等关键字,它就 ...