数据库操作重点总结记录 ExecuteReader OleDbDataReader...
最近在做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()方法,它就是读取一个表的记录,即执行读,每次调用都是返回一行的结果集。
一般用在判断这行的结果集是否有效果,有的话就执行下面的操作。一句话:一般用于判断返回的结果。
完:请高手给予指点
转载于:https://www.cnblogs.com/zhchongyao/archive/2010/05/15/1735926.html
数据库操作重点总结记录 ExecuteReader OleDbDataReader...相关推荐
- 数据库操作总结和记录
** 数据库相关操作 ** 对数据库的操作 一.创建个数据库 create database 库名; 二.进入/切换数据库 use 库名; 三.重命名数据库 一经创建,不可修改 四.删除库文件 dro ...
- JavaWeb - 数据库,MySQL安装卸载,MySQL服务器存储结构,sql语言,使用sql操作数据库/数据库表/表中记录,聚集函数,分组操作,limit关键字,重置root密码
转载请注明出处:https://blog.csdn.net/mythmayor/article/details/72781451 1.数据库的简介 (1)什么是数据库,就是一个文件系统,使用标准sql ...
- mysql---mysql查看数据库操作记录
mysql查看数据库操作记录 MySQL的查询日志记录了所有MySQL数据库请求的信息.无论这些请求是否得到了正确的执行.默认文件名为hostname.log.默认情况下MySQL查询日志是关闭的.生 ...
- mysql操作数据库的步骤,Golang操作MySql数据库的完整步骤记录
前言 MySQL是业界常用的关系型数据库,在平时开发中会经常与MySql数据库打交道,所以在接下来将介绍怎么使用Go语言操作MySql数据库. 下载MySql连接驱动 Go语言中的database/s ...
- mysql(版本5.7)(操作数据库 操作表结构 操作表记录)
数据库中以表为基本单位,进⾏存储数据.那么使⽤我们熟悉的java类 与 数据表对⽐,就会发现以下对应关系. 表记录与java类的对应关系: Java 数据库 类 表 定义的成员变量 字段(列) 对象 ...
- C# ACCESS数据库操作类
这个是针对ACCESS数据库操作的类,同样也是从SQLHELPER提取而来,分页程序的调用可以参考MSSQL那个类的调用,差不多的,只是提取所有记录的数量的时候有多一个参数,这个需要注意一下! c# ...
- 利用COM+对数据库操作进行单元测试
当单元测试需要对数据库执行CRUD(Create,Retrieve,Update,Delete)操作时,测试过后会在我们的数据库中留下大量重复的垃圾数据,这些垃圾很碍眼不是吗?而且我们的下一个测试有可 ...
- Python的数据库操作(Sqlalchemy)
ORM 全称 Object Relational Mapping, 翻译过来叫对象关系映射.简单的说,ORM 将数据库中的表与面向对象语言中的类建立了一种对应关系.这样,我们要操作数据库,数据库中的表 ...
- 小博老师解析Java核心技术 ——JDBC数据库操作类封装
2019独角兽企业重金招聘Python工程师标准>>> [引言] 我们在学习Java编程时,连接数据库技术(JDBC)是一项必备技能,我们经常需要读取或操作持久性存储的结构化数据.那 ...
最新文章
- Udacity机器人软件工程师课程笔记(七)-ROS介绍和Turtlesim包的使用
- Easyui 让Window弹出居中与最大化后居中
- 机械革命重装Win10系统后独立显卡驱动故障问题解决
- Angular ng-content元素的学习笔记
- arcgis python 教程-按区域消除--arcgis python实例教程
- 使用dropwizard(5)--加入swagger
- GitHub 引入缺陷和Pull Request 模版,并支持直接上传文件
- 【图像融合】基于matlab GUI拉普拉斯金字塔+小波变换图像融合【含Matlab源码 857期】
- 基本概念学习--TaskList(任务列表)
- 迅捷pdf虚拟打印机怎么安装打印
- linux下nmon的安装及使用教程
- 推荐一款不错的杀毒软件,还在找卡巴激活码的网友不妨进来看看!
- Ubuntu16.04+Cuda9.0+Cudnn7.0+python2.7+Caffe
- 对于von Mises distribution(冯·米塞斯分布)的一点心得
- 五千字!详细解读链家「难而正确的事」
- Android 打开系统文件管理器选择文件
- 2012年10月第3周(10.15-10.21)
- 华硕笔记本能通用的BIOS型号
- 802.1x EAP(证书)、PEAP(证书、EAP-MSCHAP v2)认证配置(NPS、组策略)
- LINUX中的七种文件类型