C# DataReader读取查询

article/2025/10/1 1:08:16

C# DataReader:读取查询结果 

在C# 中 DataReader 类的作用是读取查询结果,与在《C# Command》一节中介绍的 Command 类

中的 ExecuteReader 方法一起使用。

下面来介绍一下 DataReader 类中常用的属性和方法,以及如何使用该类查询表中的数据。

DataReader 类概述 

DataReader 类在 System.Data.SqlClient 命名空间中,对应的类是 SqlDataReader,主要用于读取表

中的查询结果,并且是以只读方式读取的(即不能修改 DataReader 中存放的数据)。

正是由于 DataReader 类的特殊的读取方式,其访问数据的速度比较快,占用的服务器资源比较少。

SqlDataReader 类中常用的属性和方法如下表所示。

属性或方法

说明

FieldCount

属性,获取当前行中的列数

HasRows

属性,获取 DataReader 中是否包含数据

IsClosed

属性,获取 DataReader 的状态是否为已经被关闭

Read

方法,让 DataReader 对象前进到下一条记录

Close

方法,关闭 DataReader 对象

Get XXX(inti)

方法,获取指定列的值,其中XXX代表的是数据类型。例如获取当前行第1列 double 类型的值,获取方法为GetDouble(o)

使用 DataReader 类读取查询结果

在使用 DataReader 类读取查询结果时需要注意,当查询结果仅为一条时,可以使用 if 语句查询

DataReader 对象中的数据,如果返回值是多条数据,需要通过 while 语句遍历 DataReader 对象中

的数据。

在使用 DataReader 类读取查询结果时需要通过以下步骤完成:

1) 执行 SqlCommand 对象中的 ExecuteReader 方法

具体代码如下。

SplDataReader dr=SqlCommand 类实例 .ExecuteReader();

 2) 遍历 SqlDataReader 中的结果

SqlDataReader 类中提供的 Read 方法用于判断其是否有值,并指向 SqlDataReader 结果中的下一条记录。

dr.Read()

如果返回值为 True,则可以读取该条记录,否则无法读取。

在读取记录时,要根据表中的数据类型来读取表中相应的列。

3) 关闭 SqlDataReader

下面通过实例来演示 SqlDataReader 类的使用。

【实例】根据用户姓名查询用户的编号和密码,并将编号和密码显示在标签控件 (Label) 上。

根据姓名查询用户信息的界面如下图所示。

 

在该界面中默认情况下显示“没有符合条件的结果”,如果根据文本框中输入的用户名能查询到指定用

户的信息,则将默认文字替换成用户编号和密码。

实现该功能的代码 如下。

//"查询"按钮单击事件

private void button1_Click(Object sender,EventArgs e)
{//编写数据库连接串string connStr ="Data Source=.;Initial Catalog=test;User ID=sa;Password=sa123456"//创建 SqlConnection的实例SqlDataReader dr = null;try{conn = new SqlConnection(connStr);//打开数据库连接conn.Open();string sql = "select id,password from userinfo where name='{0}'";//填充Sql语句sql = string.Format(sql,textBox1.Text);//执行Sql语句dr = cmd.ExecuteReader();//判断SQL语句是否执行成功if(dr.Read()){//读取指定用户名对应的用户编号和密码string msg = “用户编号:”+dr[0]+"密码"+dr[1];//将msg的值显示在标签上label2.Text = msg;}}catch(Exception ex){MexxageBox.Show("查询失败!"+ex.Message);}finally{if(dr != null){//判断dr不为空,关闭SplDataReader对象dr.Close();}if(conn != null){//关闭数据库连接conn.Close();}}
}

运行该窗体,效果如下图所示。

 

从上面的运行效果可以看出,“张三”用户对应的用户编号为 1、密码为 123456。

需要注意的是,实现上述功能的要求是用户表中的用户名是唯一的,以避免出现查询错误。


http://chatgpt.dhexx.cn/article/HgvNoTeT.shtml

相关文章

DataReader用法

转载自:http://www.studyofnet.com/news/693.html 本文导读:DataReader对象只允许以只读、顺向的方式查看其中所存储的数据,提供一个非常有效率的数据查看模式,Datareader对象不能关使用new关键字创建。但可以使用ExecuteReader&a…

C语言初阶-C语言中static的用法

目录 前言 1.static的定义 2.static修饰局部变量 2.static修饰全局变量 3.static修饰函数 总结: 前言 哈喽,大家好,我是大鹏,目前是一名大二的学生,今天给大家带来的是static的用法,希望大家给个关注…

C语言关键字之static

static是C语言中得一个关键字。 它的使用有三种情况:修饰局部变量、全局变量、函数。 修饰局部变量:改变存储属性 普通的局部变量是存放在栈中的,而被static修饰的变量是存放在数据段中的。 放在数据段中的具体位置具体分析:已…

c语言 static运用,灵活改变生命周期,让你写代码如鱼得水

在C语言中static是非常重要的一个关键字 static意为静态的,它的用法基本分为三种 1. 修饰局部变量(改变局部变量的生命周期) 2. 修饰全局变量(使全局变量仅作用于当前源文件) 3. 修饰函数(使函数仅作用…

c语言staticint的作用,C语言 static 声明静态变量?大佬原来用它干这事!

原标题:C语言 static 声明静态变量?大佬原来用它干这事! C语言可变参数只会用算啥本事?看我来抽丝剥茧干翻它! 高手在写代码的时候,会特别注重的一点就是,对外的方法对外,不对外的方…

C语言static和extern关键字

1.static static修饰的变量,自始至终只有一块空间,当前文件才能使用,生命周期是从定义开始直到程序结束;全局变量的定义是在.c文件中,但是声明全局变量是在.h中;static:静态型,用它定…

C语言static关键字修饰变量及函数时的用法和原理

目录 一.static关键字修饰局部变量 二.static关键字修饰全局变量 三.static关键字修饰函数 一.static关键字修饰局部变量 在内存中,往往将其分为三个区块,栈区,堆区,静态区。C语言中定义的局部变量包括函数参数都存储在栈区&am…

C语言 static的使用

你知道C语言中 static 有几种用法&#xff1f; 目录 1. static 可以修饰局部变量 2. static 可以修饰全局变量 3. static 可以修饰函数 1.static 可以修饰局部变量 首先让我看看这段代码 #include<stdio.h> void test() {int a 1;a a 1;printf("%d", a);…

C语言 Static关键字的作用详解

前言&#xff1a; static 是用来修饰函数和变量的&#xff0c;可以修饰局部变量&#xff0c;全局变量以及函数 一、修饰局部变量 &#xff08;称为静态局部变量&#xff09; 来看俩段代码&#xff1a; 对于第一段代码来说&#xff0c;它循环5次&#xff0c;每次调用一下fun(…

[深度解剖C语言] --关键字 static

static ---最名不副实的关键字 目录 1.static修饰全局变量 2.static修饰函数 3.static修饰局部变量 static的作用&#xff1a; 1.static修饰全局变量 我们创建两个源文件&#xff0c;一个test.c&#xff0c;一个main.c 现在我们在test.c文件下定义一个全局变量 int g_va…

C语言中static的用法(修饰局部变量,修饰全局变量,修饰函数)

static 关键字有三种用法 static 修饰局部变量 - 静态局部变量static 修饰全局变量 - 静态全局变量static 修饰函数 - 静态函数 static 关键字的三种用法 1. static 修饰局部变量 - 静态局部变量2. static 修饰全局变量 - 静态全局变量3. static 修饰函数 - 静态函数 1. stati…

带你熟知关键字static用法——C语言(举例及通俗易懂)

引入 首先我们看两个例子&#xff1a; 例1 #include<stdio.h> void test() {int i 0;i;printf("%d", i); } int main() {int a 0;while (a < 10){test();a;}return 0; } 例2 #include<stdio.h> void test() {static int i 0;i;printf("%d…

【C语言】 Static关键字的用法和详解(太细了!!!)

文章目录 目录 前言 一、static是什么 二、static的用法 1.修饰局部变量 2.修饰全局变量 3.修饰函数 总结 前言 static在不同的语言中又有不同的使用方法&#xff0c;本文介绍的是static在C语言当中的用法。 一、static是什么 static在C语言中是关键字&#xff0c;中…

C语言中的static的用法(超级详细)

&#x1f339;作者:云小逸 &#x1f4dd;个人主页:[云小逸的主页] &#x1f4dd;码云&#xff1a;云小逸 (YunXiaoYi003) &#x1f91f;motto:要敢于一个人默默的面对自己&#xff0c;强大自己才是核心。不要等到什么都没有了&#xff0c;才下定决心去做。种一颗树&#xff0c;…

JQuery HTML5 验证表单

HTML5新增属性验证表单内容 <body><!-- HTML5验证的特性 &#xff1a;required"required"必填number,url,email,search....--><form action"#" method"post"><input type"search" id"uname" value&quo…

jQuery表单验证实例 / 包含用户名、密码、住址、邮箱验证

jQuery表单验证实例 / 包含用户名、密码、住址、邮箱验证 如下图 别忘了引入jQuery框架&#xff01;&#xff01;&#xff01; 话不多说直接先上jQuery部分代码&#xff1a; <script type"text/javascript">$(document).ready(function(){var tip1 "&…

jquery表单验证(jQuery表单验证插件Validation怎么下载)

如何用jquery的form插件验证表单 你好&#xff0c;插件无非就是集成所有可能出现的情况&#xff0c;通过配置来调用验证&#xff0c;比如jqueryvalidate插件&#xff0c; 插件内部实现一些非空&#xff0c;正则格式&#xff0c;邮箱&#xff0c;url等判断&#xff0c;你要做的就…

jQuery实现表单的验证

要求&#xff1a;技术要求&#xff08;htmlcssjquery&#xff09; 1. 完成页面布局&#xff08;页面布局合理、样式和图片一致、代码无误各&#xff09; 2. 用jquery验证Email地址是否有效&#xff0c;要求Email地址中必须包含符号&#xff0c;如果Email地址有效则显示”正确…

jQuery--表单校验

jQuery -- 表单校验 表单验证String对象和表单验证有关的成员正则表达式表单选择器表单验证事件和方法 表单验证 为什么要进行表单验证&#xff1f; 无论是动态网站&#xff0c;还是其他B/S结构的系统&#xff0c;都离不开表单。 表单作为客户端向服务器端提交数据的主要载体&a…

jQuery表单验证插件

表单验证插件 表单验证规则 <!DOCTYPE html> <html><head><meta charset"utf-8" /><title></title><style>#myform label.error{color: #FF0000;}</style><script src"js/jquery-3.3.1.js"><…