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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 无线网首选dns服务器怎么设置,首选dns服务器地址如何设置

    无线网首选dns服务器怎么设置,首选dns服务器地址如何设置首选dns服务器地址如何设置dns服务器地址如何设置?DNS(DomainNameServer,域名服务器)是进行域名(domainname)和与之相对应的IP地址(IPaddress)转换的服务器。DNS中保存了一张域名(domainname)和与之相对应的IP地址(IPaddress)的表,以解析消息的域名。域名是Internet上某一台计算机或计算机组的名称,用于在数据传输…

    2022年4月28日
  • chrome无法从该网站添加应用、扩展程序和用户脚本_谷歌浏览器该插件不受支持怎么解决

    chrome无法从该网站添加应用、扩展程序和用户脚本_谷歌浏览器该插件不受支持怎么解决今天将谷歌浏览器升级到了最新的版本,在安装拓展应用的时候,却发现无法添加应用、拓展程序和用户脚本,让我很是郁闷,现整理解决方法如下:1.在GoogleChrome浏览器的桌面快捷方式上鼠标右键,选择属性(R),进入如下界面2.在目标(T)后添加参数–enable-easy-off-store-extension-install(注意在添加参数之前,要有个空格),…

    2022年10月8日
  • mfcgetdlgitem_mfc queue

    mfcgetdlgitem_mfc queueGetDlgItem 根据一个对话窗或一个控件的ID,返回一个指向这个对话窗或控件的对象的指针

    2022年11月3日
  • 给你的wordpress博客中加入喜欢的鼠标指针

    想给你的博客加个喜欢的鼠标指针吗?其实很简单的,wordpress中要加入只需修改皮肤中的css。在body中插入cursor:url(‘鼠标指针网址’)}就可以了,如果想修改鼠标指针接触到链接的鼠标样式,那只要在a中插入cursor:url(‘鼠标指针网址’),我用的是个企鹅,挺好玩的。我也发上来,喜欢的可以用用。鼠标指针转载于:https://www.cnblogs.com/joyp…

    2022年4月12日
  • 利用SecureCRTPortable远程连接虚拟机

    利用SecureCRTPortable远程连接虚拟机利用SecureCRTPortable远程连接虚拟机1.出现的问题​ 打开SecureCRTP之后,输入正确的ip地址却无法连接到虚拟机。​ 2.解决调试​ 1.通过windows的cmd去ping虚拟机,同样还是ping不通2.查看网络适配器中VMnet8(该网卡是作为虚拟机与本机交互的一个网卡)3.错误原因:网卡中的ip地址与虚拟机中的地址相同,网关与虚拟机不相同​ 更改网卡中的ip地址使得…

    2022年6月14日
  • phpstrom 2021.4.14 激活码_通用破解码

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

    2022年3月17日

发表回复

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

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