DataReader存在的意义

DataReader存在的意义

     首先说明,本人菜鸟一枚。说的不准确的话请大家见谅了。

     ado.net中的存在DataReader和DataSet对象,在平时的工作中从来没有使用过DataReader对象。前天突然想起了DataReader对象。既然ado.net中有这个对象的存在,那么这个对象一定是有意义的。可是它到底有什么意义呢?

      要知道DataReader可以实现的功能DataSet都可以实现。而且因为DataReader对象是只读的并且每次只能读取一条数据。所以我首先想到的是可以在登录的时候使用DataReader。通过输入的用户名返回符合条件的密码和输入的密码相比较,如果一致则登陆成功,如果不一致则登录失败。因为Datareader是面向数据库连接的,所以在读取大量数据的时候DataReader的效率会比非面向数据库连接的DataAdapter+DataSet要高,那么大量数据需要显示,并且这些数据不需要修改的话,使用Datareader+DataTable的效率是不是会比DataSet作为数据源效率跟高呢。因为我手头上没有大量的数据因此没有测试。不过理论上来说DataReader的效率会更高一点。下面是源码

  

namespace WindowsFormsApplication1
{

public partial class Form1 : Form
{

public Form1()
{

InitializeComponent();
DataSource();
}

 

public void DataSource()
{

string strCon = ConfigurationManager.AppSettings[“Connection2”].ToString();
string strCon2 = ConfigurationManager.ConnectionStrings[“Connection1”].ToString();
using (System.Data.SqlClient.SqlConnection conn = new System.Data.SqlClient.SqlConnection(strCon2))
{

using (System.Data.SqlClient.SqlCommand comm = conn.CreateCommand())
{

comm.CommandText = “select * from UserMessage”;
conn.Open();
#region DataReader作为数据源
using (SqlDataReader dr = comm.ExecuteReader())
{

DataTable tb = new DataTable();
tb.Load(dr);//将DataReader绑定到DataTable
dataGridView1.AutoGenerateColumns = false;
this.dataGridView1.DataSource = tb;
dataGridView1.Columns.Add(“ID”, “编号”);
dataGridView1.Columns.Add(“UserName”, “用户名”);
dataGridView1.Columns.Add(“PassWord”, “密码”);
dataGridView1.Columns[0].DataPropertyName = tb.Columns[0].ToString();
dataGridView1.Columns[1].DataPropertyName = tb.Columns[1].ToString();
dataGridView1.Columns[2].DataPropertyName = tb.Columns[2].ToString();
}
}
}
}

在园子里逛了快一年了这是第一次写博客。肯定写的不好,就请大家多多见谅了。

转载于:https://www.cnblogs.com/wigy/archive/2012/07/09/2582726.html

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

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/110367.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • presentation里的reference_preference的用法

    presentation里的reference_preference的用法Perference也就是我们常说的偏好设置,首选项设置,能够自己主动保存一些数据,比如我们在上一次使用的时候的一些内容,则在下一次启动后依旧生效,而不须要再进行配置。当用户改变设置时,系统就会更新SharedPreference文件里相应的值。perference使用键值对的方式来处理,在android3.0之前,我们一般去继承Preference这个基类,去给用户呈现一个…

    2022年9月7日
    2
  • 基于VirtualBox虚拟机安装Ubuntu图文教程

    一.下载安装VirtualBox官网下载VirtualBox,目前版本:VirtualBox5.1.8forWindowshostsx86/amd64下载好了安装VirtualBox,一路Next就可以了,这个比较简单。运行VirtulBox程序,如下图:配置VirtualBox。按 CTRL+G打开全局设定,根据需要可以设定虚拟脑位置和界面语言:

    2022年4月8日
    90
  • 【折腾系列—All In One主机】9、关于一些基于PVE虚拟机搭建AIO主机的问题点汇总和分析「建议收藏」

    【Q&A】2020-07-27补充:Q:PROXMOXPVE6.x配置网络参数可以访问外网,及国内源设置教程?A:PROXMOXPVE6.x网络参数配置教程:如何在Linux下配置网络访问外网      PROXMOXPVE6.x设置国内源:【参考1】【参考2】【参考3】Q:在原有板载网卡的基础上扩展了一张PCI-E的Intel82576GB的4口网卡,但是创建多台虚拟机的时候无法进行网卡直通,添加了PCI-E设

    2022年4月15日
    280
  • 获取 Chromium 源代码以及环境配置

    一、获取代码a) 不下载代码,直接浏览,到这里:http://src.chromium.org/viewvc/chrome/ 或者这里:http://code.google.co

    2021年12月25日
    40
  • idea查看本地激活码_通用破解码「建议收藏」

    idea查看本地激活码_通用破解码,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月17日
    79
  • acwing-396. 矿场搭建(Tarjan点双连通分量)「建议收藏」

    acwing-396. 矿场搭建(Tarjan点双连通分量)「建议收藏」煤矿工地可以看成是由隧道连接挖煤点组成的无向图。为安全起见,希望在工地发生事故时所有挖煤点的工人都能有一条出路逃到救援出口处。于是矿主决定在某些挖煤点设立救援出口,使得无论哪一个挖煤点坍塌之后,其他挖煤点的工人都有一条道路通向救援出口。请写一个程序,用来计算至少需要设置几个救援出口,以及不同最少救援出口的设置方案总数。输入格式输入文件有若干组数据,每组数据的第一行是一个正整数 N,表示工地的隧道数。接下来的 N 行每行是用空格隔开的两个整数 S 和 T,表示挖煤点 S 与挖煤点 T 由隧道直接连

    2022年8月10日
    9

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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