怎样用datareader访问数据库,怎样读取数据库中的一张表

??JIao 2024-05-28 09:50:32
最佳回答
datareader对象与数据获取 datareader对象以“基于连接”的方式来访问数据库。也就是说,在访问数据库、执行sql操作时,datareader要求一直连在数据库上。这将会给数据库的连接负载带来一定的压力,但datareader对象的工作方式将在很大程度上减轻这种压力。1、datareader对象的常用属性datareader对象提供了用顺序的、只读的方式读取用command对象获得的数据结果集。由于datareader只执行读操作,并且每次只在内存缓冲区里存储结果集中的一条数据,所以使用datareader对象的效率比较高,如果要查询大量数据,同时不需要随机访问和修改数据,datareader是优先的选择。datareader对象有以下常用属性。fieldcount属性:该属性用来表示由datareader得到的一行数据中的字段数。hasrows属性:该属性用来表示datareader是否包含数据。**closed属性:该属性用来表示datareader对象是否关闭。2、datareader对象的常用方法同样,在sql server data provider里的datareader对象叫sqldatareader,而在ole db data provider里叫oledbdatareader。datareader对象使用指针的方式来管理所连接的结果集,它的常用方法有关闭方法、读取记录集下一条记录和读取下一个记录集的方法、读取记录集中字段和记录的方法,以及判断记录集是为空的方法。1. close方法close方法不带参数,无返回值,用来关闭datareader对象。由于datareader在执行sql命令时一直要保持同数据库的连接,所以在datareader对象开启的状态下,该对象所对应的connection连接对象不能用来执行其他的操作。所以,在使用完datareader对象时,一定要使用close方法关闭该datareader对象,否则不仅会影响到数据库连接的效率,更会阻止其他对象使用connection连接对象来访问数据库。2. bool read()方法bool read()方法会让记录指针指向本结果集中的下一条记录,返回值是true或false。当command的executereader方法返回datareader对象后,须用read方法来获得第一条记录;当读好一条记录想获得下一下记录时,也可以用read方法。如果当前记录已经是最后一条,调用read方法将返回false。也就是说,只要该方法返回true,则可以访问当前记录所包含的字段。3. bool nextresult()方法bool nextresult()方法会让记录指针指向下一个结果集。当调用该方法获得下一个结果集后,依然要用read方法来开始访问该结果集。4. object getvalue(int i)方法object getvalue(int i)方法根据传入的列的索引值,返回当前记录行里指定列的值。由于事先无法预知返回列的数据类型,所以该方法使用object类型来接收返回数据。5. int getvalues (object[] values)方法int getvalues (object[] values)方法会把当前记录行里所有的数据保存到一个数组里并返回。可以使用fieldcount属性来获知记录里字段的总数,据此定义接收返回值的数组长度。6. 获得指定字段的方法获得指定字段的方法有getstring、getchar、getint32等,这些方法都带有一个表示列索引的参数,返回均是object类型。用户可以根据字段的类型,通过输入列索引,分别调用上述方法,获得指定列的值。例如,在数据库里,id的列索引是0,通过string id = getstring (0);代码可以获得id的值。7. 返回列的数据类型和列名的方法可以调用getdatatypename()方法,通过输入列索引,获得该列的类型。这个方法的定义是:string getdatatypename (int i)可以调用getname()方法,通过输入列索引,获得该列的名称。这个方法的定义是:string getname (int i)综合使用上述两方法,可以获得数据表里列名和列的字段。8. bool **db**(int i)方法:bool **db**(int i)方法的参数用来指定列的索引号,该方法用来判断指定索引号的列的值是否为空,返回true或false。3、datareader对象访问数据库代码示例下面的代码将说明如何利用datareader对象获得并访问结果集。//连接字符串private static string strconnect = "data source=localhost; 论uid=sa;pwd=aspnet;database=logindb"sqlconnection objconnection = new sqlconnection(strconnect);sqlcommand objcommand = new sqlcommand("", objconnection);// 设置查询类的sql语句 objcommand.commandtext = "select * from users ";try{ // 打开数据库连接 if (objconnection.state == connectionstate.closed) {objconnection.open();} // 获取运行结果 sqldatareader result = objcommand.executereader();//如果dataread对象成功获得数据,返回true,否则返回falseif (result.read() == true) { // 输出结果集中的各个字段 response.write(result["userid"].tostring()); response.write(result["nickname"].tostring());response.write(result["userrole"].tostring());}}catch(sqlexception e){ response.write(e.**.tostring());}finally{ // 关闭数据库连接if (objconnection.state == connectionstate.open) {objconnection.close();}// 关闭dataread对象if(result.**closed == false){ result.close();}}在代码里,给出了两种使用datareader对象访问结果集的方式,一种是直接根据字段名,利用result["userid"]的形式获得特定字段的值;另一种方式写在注释里,通过for循环,利用fieldcount属性和getvalue方法,依次访问数据集的字段。datareader 提供未缓冲的数据流,该数据流使过程逻辑可以有效地按顺序处理从数据源中返回的结果。由于数据不在内存中缓存,所以在检索大量数据时,datareader 是一种适合的选择。另外值得注意的是,datareader在读取数据时,限制每次只能读一条,这样无疑提高了读取效率,一般适用于返回结果只有一条数据的情况。如果返回的是多条记录,就要慎用此对象 20210311
汇率兑换计算器

类似问答
  • access 中的 update 怎么跨数据库更新?
    • 2024-05-28 10:40:16
    • 提问者: 未知
    这样写肯定不行了!复杂点的方法就是用代码打开所需要的数据库,然后读取打开数据库的表 简单点的方法就是创建表链接。以下以2010版为例: 1、外部数据→access→通过创建链接表来链接到数据源,然后选择路径、表… 这样,系统会创建一个与外部数据库中该表同名的链接表,若本地数据有这个名字,系统...
  • 股票数据库
    • 2024-05-28 07:02:41
    • 提问者: 未知
    资金在线-个股资金流向与大单分析系统,查看主力持仓分布情况,分为散户、中户、大户、法人、机构的持仓以及多日的持仓趋势图,每天第一时间更新,完全免费,同时可查看所有a股最近数天的大小资金分布情况,图形化显示,每天实时更新,观察大资金异动,跟随主力操作,查看大小资金的进出情况和数天累计进出情况,查询各大板块资金进出,寻找当前的热点,和主力周旋,所有信息完全免费,这击这里进入: **股票一级市场研究数据...
  • 银行数据库系统用c#做怎么样?
    • 2024-05-28 14:17:23
    • 提问者: 未知
    c#做的是前台界面吧,数据库还是用后台的。说c#指的是用ado.net吧。
  • 操作数据库
    • 2024-05-28 18:15:31
    • 提问者: 未知
    1. 需要使用ado组件中的“connection”方法2. set 变量名=server.createobject("adodb.connection")3. 使用connection的“open”方法4. 加上“连接字符串”5.常用数据库的连接方式是:“连接字符串方式连接”
  • datafactory数据生成怎么连接mysql数据库
    • 2024-05-28 10:23:01
    • 提问者: 未知
    1由于需要进行连接mysql的数据,就需要现在电脑中进行安装myodbc驱动,这样才有办法进行连接mysql的数据,首先进行打开datafactory数据生成工具,然后在select connoction进行选择odbc的选项,进行点击下一步。2然后进入到connection **rmation page的选项中,如果直接进行时无法连接到mysql的数据库的,只能通过电脑的数据源来进行通过连接,进...
  • 如何获取股票数据与历史数据以数据库方式存储的
    • 2024-05-28 09:39:11
    • 提问者: 未知
    您使用炒股软件吗?任何一个大的证券公司的非迷你版炒股软件都可以下载股票数据与历史数据,且在其软件上可以随时查询和查看. 至于说要数据库方式存储的以便于查询或者sql语句能查询,则网上是下不到的,可以去买张与此有关的光盘试试. (其实,炒股软件下载的数据都是据库方式存储的,只要您知道存储格式就可以自己查询).
  • 数据库的类型??
    • 2024-05-28 04:42:56
    • 提问者: 未知
    数据库是在计算机存储设备上按一定方式,合理组织并存储的相互有关联的数据的集合,是计算机技术和信息检索技术相结合的产物,是电子信息资源的主体,是信息检索系统的核心部分之一。按所提供的信息内容,数据库主要可分为参考数据库和源数据库。 1.参考数据库 主要存储一系列描述性信息内容,指引用户到另一信息源以获得完整的原始信息的一类数据库,主要包括书目数据库和指南数据库。 (1)书目数据库 存储描述如目录、题...
  • 求助:sql直接读取股票软件数据库
    • 2024-05-28 08:04:03
    • 提问者: 未知
    务器:消息 170,级别 15,状态 1,行 1 第 1 行:'max' 附近有语法错误。服务器:消息 137,级别 15,状态 1,行 2 必须声明变量 '@'。服务器:消息 137,级别 15,状态 1,行 3 必须声明变量 '@'。服务器:消息 137,级别 15,状态 1,行 9 必须声明变量 '@'。
  • 动态数据仓库怎样设计与应用?
    • 2024-05-28 06:36:57
    • 提问者: 未知
    数据仓库技术的每次演进都以发掘企业数据中更多价值作为目标。而近期流行的动态数据仓库技术,不仅在灵活性、可视化方面有了长足进步,还能够对企业决策、合作伙伴及客户...
  • 数据库中表与查询的区别
    • 2024-05-28 22:31:01
    • 提问者: 未知
    数据库中表与查询的区别如下: 1、操作权限。表:操作权限是依存关系,数据表是可以进行操作的。查询:查询视图的操作权限是来源于数据表的,当交叉数据表的时候无法进行操作查询。2、存储功能的区别。表:数据表有存储功能,可以写存储过程。查询:查询视图只能分析,无法存储数据。3、整理...
汇率兑换计算器

热门推荐
热门问答
最新问答
推荐问答
新手帮助
常见问题
房贷计算器-九子财经 | 备案号: 桂ICP备19010581号-1 商务联系 企鹅:2790-680461

特别声明:本网为公益网站,人人都可发布,所有内容为会员自行上传发布",本站不承担任何法律责任,如内容有该作者著作权或违规内容,请联系我们清空删除。