mysql executereader_“c#”中“ExecuteReader”是什么意思?
1、MSDN上说:Sends the CommandText to the Connection and builds a SqlDataReader.
简单说,就是SqlCommand对象的方法,执行返回数据的Select语句。它的执行方法有两个:
第一,ExecuteReader():针对Connection执行CommandText,并返回DbDataReader。
第二,ExecuteReader(CommandBehavior behavior):针对Connection执行CommandText,并使用CommandBehavior值之一返回DbDataReader。
2、实例代码
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()方法,它就是读取一个表的记录,即执行读,每次调用都是返回一行的结果集。
mysql executereader_“c#”中“ExecuteReader”是什么意思?相关推荐
- 自定义tt文本模板实现MySql指数据库中生成实体类
自定义tt文本模板实现MySql指数据库中生成实体类 1.在项目中依次点击"添加"/"新建项",选择"文本模板",输入名称后点击添加. 2. ...
- MySQL 5.6中如何定位DDL被阻塞的问题
在上一篇文章<MySQL 5.7中如何定位DDL被阻塞的问题>中,对于DDL被阻塞问题的定位,我们主要是基于MySQL 5.7新引入的performance_schema.metadata ...
- mysql 执行cmd,mysql命令行中执行sql的几种方式总结
1.直接输入sql执行 MySQL> select now(); +---------------------+ | now() | +---------------------+ | 2013 ...
- mysql的调用有哪三种方式_MySQL数据库之mysql命令行中执行sql的几种方式总结
本文主要向大家介绍了MySQL数据库之mysql命令行中执行sql的几种方式总结 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 1.直接输入sql执行 MySQL> se ...
- mysql修改表中某个字段的默认值
Mysql中用SQL增加.删除字段,修改字段名.字段类型.注释,调整字段顺序总结 在网站重构中,通常会进行数据结构的修改,所以添加,删除,增加mysql表的字段是难免的,有时为了方便,还会增加修改表或 ...
- MySQL 5.7中的更多改进,包括计算列
让我们继续上一周的内容,讨论MySQL 5.7中的新特性,我们将把注意力集中于新的安全方面的特性.首先,新版本中取消了mysql_old_password这个认证插件.其实这个插件从版本4.x开始就已 ...
- MariaDB/MySQL从数据库中选择随机的行
MariaDB/MySQL从数据库中选择随机的行 一个比较传统的做法是使用sql自带的rand函数,从而达到随机排序的目的. SELECT column FROM table ORDER BY RAN ...
- mysql init-file参数中语句限制
mysql 启动选项中的init-file文件的内容目测只能是dml语句,不能包含ddl,否则执行就会报错,但不影响启动本身..太扯了..
- MySQL和Oracle中的隐式转换
今天在处理一个问题的时候,需要根据其他部门提供的sql语句对一个表中的数据进行了筛查. 语句类似下面的形式 > SELECT MAX_LEVEL,LOGOUT_TIME,CURRENT_DATE ...
最新文章
- 继人工智能攻陷围棋,德州扑克也沦陷了
- C++入门之常量与变量
- Linux系统下按了Ctrl+s锁定屏幕后怎么办?
- vba xml 怎么设置父节点_熊二做了一个xml报文处理的开源库easyxml
- SQL语句使用大全,最常用的sql语句
- hdoj 5934 强连通分量+缩点 模版题(Java版)
- CTF之Bugku网站被黑
- PS2无线遥控手柄的通讯协议以及c语言代码分析
- mysql数据库教程级联_Mysql实现级联操作(级联更新、级联删除)
- fMRI中自发性短暂脑网络交互的行为相关性
- 【Pytorch基础教程34】EGES召回模型
- BAT脚本: ping检测网络稳定性 与 取命令结果的指定行方法 与 将变量内容追加写入txt文件方法
- 分布式与集群的区别?
- 分享一个免费的计算机书籍资料网站(含有编程语言,算法,人工智能,游戏开发等书籍资料)
- RabbitMq设置可视化界面
- Bing Test -必应每日壁纸自动换
- 闲人的命令执行漏洞基础学习1
- 接口练习--设计一个辅助英雄 接口实现技能治疗
- 怎么做到new String(abc) == new String(abc)双等号为true呢?不是使用equals哦
- Android初学之自定义简单蛛网(雷达)图
热门文章
- 雅思作文_教育类(一)
- 百度SEO老域名历史批量查询软件
- 剪辑视频的方法和步骤 剪辑视频基本技巧有哪些
- python变量后加点和函数_教你玩转Python函数和变量
- 复制粘贴发明人、Java 和互联网创建者相继去世
- SQL Server通配符
- 手游pubg怎么修改服务器,PUBG怎么调设置 | 手游网游页游攻略大全
- 【100%通过率】华为OD机试真题 Python 实现【真正的密码】【2022.11 Q4 新题】
- 数学之美:神奇的杨辉三角形,比帕斯卡早了近600年,致敬中国古代数学家(63)
- 苹果6s系统升级无服务器,iPhone6s升级至iOS13,如果没换新电池,最好别更新