mysql executereader_ExecuteReader的用法

mysql executereader_ExecuteReader的用法最近在做winform的编程,想到一真没有使用过ExecuteReader。可能以前以后它的用户不大,或者不大好用,故没有用过。今天在这里将学习记录写下来,供读者参考:1、MSDN上说:SendstheCommandTexttotheConnectionandbuildsaSqlDataReader.(这句话就不翻译了)2、实例片段:[C#]publicvoidCreateM…

大家好,又见面了,我是你们的朋友全栈君。

最近在做winform的编程,想到一真没有使用过ExecuteReader。可能以前以后它的用户不大,或者

不大好用,故没有用过。今天在这里将学习记录写下来,供读者参考:

1、MSDN上说:Sends the CommandText to the Connection and builds a SqlDataReader.

(这句话就不翻译了)

2、实例片段:

[C#]

public void CreateMySqlDataReader(string mySelectQuery, SqlConnection myConnection)

{

string sql;//sql语句

SqlCommand myCommand = new SqlCommand(sql, myConnection);

myConnection.Open();

SqlDataReader myReader;

myReader = myCommand.ExecuteReader();

try

{

while(myReader.Read())

{

Console.WriteLine(myReader.GetString(0));

}

}

finally

{

myReader.Close();

myConnection.Close();

}

}

3、下面说说它的用法:

①:

用法:ExecuteReader 方法存在的目的只有一个:尽可能快地对数据库进行查询并得到结果。ExecuteReader 返回一个                 DataReader对象:如果在SqlCommand对象中调用,则返回SqlDataReader;如果在OleDbCommand对象中调用,返回的是OleDbDataReader。可以调用DataReader的方法和属性迭代处理结果集。它是一个快速枚举数据库查询结果的机制,是只读、只进的。对SqlDataReader.Read的每次调用都会从结果集中返回一行。

②:

这是出自我平时所用的时候的一些认识:那就是如果我们在进行数据操作时,如果没有数据可操作,那么我们只能使用ExecuteReader()这个CMD,而executeNoeQuery()与Executescalar()如果在没有数据的时候使用时,就会出错“对像没有实例化”的错误。所以我们在判断是否有数据时,只可以用ExecuteReader()中的REad()方法来检测。

④:

DataReader还有一个GetValue方法可以用来检索字段的值。GetValue返回一个一般性的Object,但是被无数个返回强类型的Get方法补充,比如GetInt32和GetDecimal(参考MSDN2005)。对GetOrdinal的调用是必须的,因为GetDecimal只接受整型索引。GetOrdinal所做的工作正好与GetName相反——它把字段名转换成数字索引。

注意:DataReader必须处理Close方法。

using System.Data.SqlClient;

SqlConnection conn = new SqlConnection(@”server=ws7\leosql;database=AdventureWorks;uid=sa;pwd=lixiang@”);

try

{

conn.Open();

SqlCommand cmd = new SqlCommand(“SELECT * FROM titles WHERE advance != 0”, conn);

SqlDataReader reader = cmd.ExecuteReader();

int index = reader.GetOrdinal(“advance”);

while(reader.Read())

Console.WriteLine(“{0:c}”, reader.GetDecimal(index));

=================================

— Console.WriteLine(reader.GetName(0));

=================================

”reader.Close();”

}

catch(SqlException ex)

{

Console.WriteLine(ex.Message);

}

finally

{

========================================================

— 可以配置DataReader,使它真的可以关闭一个底层连接

— reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);

========================================================

conn.Close();

}

⑤:

现在来强调下:现在来说下ExecuteReader的read()方法,它就是读取一个表的记录,即执行读,每次调用都是返回一行的结果集。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/151483.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 大数据云计算和物联网之间的区别和联系_云计算和大数据的区别

    大数据云计算和物联网之间的区别和联系_云计算和大数据的区别一、概念1.云计算“云”指通过计算机池提供资源,也就是说,不是构建一两台机器的问题,而是要构建一定规模的集群,并且对该集群统一管理,形成”资源池“,才能满足云计算业务的需求。简单地说,**云计算就是基于互联网将规模化资源池的计算、存储、平台开发和软件能力提供给用户,实现自动化、低成本、快速提供和灵活伸缩的IT服务。**云计算代表了以虚拟化技术为核心、以低成本为目标的、动态可扩展的…

  • java中高级面试题总结(全面)_java高级面试题大汇总

    java中高级面试题总结(全面)_java高级面试题大汇总参考了网上的面试题,整理了一份面试题的资料。String,StringBuffer,StringBuilder的区别是什么?String为什么是不可变的?String是字符串常量,后两者是字符串变量。其中,StringBuffer是线程安全的,而StringBuilder是非线程安全的,线程安全会带来额外的开销,所以StringBuilde

  • java线程池详解及五种线程池方法详解「建议收藏」

    java线程池详解及五种线程池方法详解「建议收藏」基础知识Executors创建线程池Java中创建线程池很简单,只需要调用Executors中相应的便捷方法即可,比如Executors.newFixedThreadPool(intnThreads),但是便捷不仅隐藏了复杂性,也为我们埋下了潜在的隐患(OOM,线程耗尽)。Executors创建线程池便捷方法列表:方法名 功能 newFixedThreadPool(intnThreads) 创建固定大小的线程池 newSingleThreadExecutor()

  • 练习break和continue「建议收藏」

    练习break和continue「建议收藏」练习break和continue需求:计算出1到100所有不能被7整除的整数之和(用continue)代码如下:<script>varsum=0;for(vari=0;i<=100;i++){ if(i%7===0){ continue; } sum+=i;}console.log(sum);</script>需求:…

  • webpack(7)webpack使用vue配置「建议收藏」

    webpack(7)webpack使用vue配置「建议收藏」前言如果我们想在webpack中使用vue,就需要在webpack中配置vue配置vue首先,我们需要在项目中安装vue,安装命令如下:npminstallvue–save安装完成后

  • navicate15 激活码(注册激活)

    (navicate15 激活码)本文适用于JetBrains家族所有ide,包括IntelliJidea,phpstorm,webstorm,pycharm,datagrip等。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.cn/ide…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号