`
gstarwd
  • 浏览: 1526865 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

DataReader 不存在此行/列的数据

SQL 
阅读更多

用DataReader对数据进行绑定呵呵,用他来读取数据库的最简单方式,它只能读取,不能写入,并且是从头至尾往下读的它占用内存小,速度快,在数据量较少的情况下,DataSet和DataReader 的优劣并没有非常明显的优劣,然而,当数据流量达到一定量(200条左右),这和您的计算机的硬件配置有关,DataReader 的优势就很明朗了. 

代码如下:

            string constr =**************
            string sql = string.Format("Select * from News where NewId={0}",5);
            OleDbConnection con=new OleDbConnection(constr);
            con.Open();
            OleDbCommand cmd = new OleDbCommand(sql, con);
            OleDbDataReader dtr=cmd.ExecuteReader();          
            dtr.Read();
            this.Label1.Text = dtr["NewTitle"].ToString();
            this.Label2.Text = dtr.GetValue(3).ToString();
            this.Label3.Text = dtr.GetValue(4).ToString();
            dtr.Dispose();
            con.Close();

刚开没有写dtr.Read();结果报错说 :不存在此行/列的数据。后来加上了, 因为dtr中有一条记录,所以读出来了。

呵呵粗心害死人啊!

同样的登陆这块也是:

  OleDbDataReader rd = cmd.ExecuteReader();  //执行SQL语句,返回记录(一般用户名和密码相同的只有一个),所以rd中只存在一条记录
      rd.Read();   //返回true,因为rd中有一条记录,所以读出来了。
      Label1.Text = rd.GetValue(0).ToString();
       if (rd.Read() == true)     //唯一的一条记录已经被读出来了,现在rd.read()将返回false
             Label1.Text = "登陆成功"; //这里永远不会登陆成功,除非有另外一个用户的用户名和密码完全一样

分享到:
评论

相关推荐

    使用DataReader对象读取数据

    在处理大量数据时,`DataReader`比`DataSet`或`DataTable`更高效,因为它不将所有数据加载到内存中,而是按需读取。但是,由于它不支持数据的修改,所以在需要对数据进行修改的场景下,可能需要使用`DataAdapter`和`...

    DataReader读取数据并查数据库数据是否重复

    本文将围绕“DataReader读取数据并查数据库数据是否重复”这一主题,深入探讨如何利用.NET框架中的SqlDataReader类来实现这一功能。 SqlDataReader是一个只向前的、快速的数据读取器,它提供了对数据库结果集的低级...

    DataReader和DataSet的区别

    另外,DataReader 只能按顺序读取数据,一旦读过一行,就不能返回读取之前的数据。 相比之下,DataSet 提供了一个在内存中的数据存储,它是一个包含一个或多个表的离线数据集。DataSet 允许你在内存中自由地操作...

    datareader对象

    因此,DataReader适合于一次性处理大量数据,而不需要对数据进行修改的情况。 使用DataReader读取数据时,我们通常会遍历每一行数据,如下所示: ```csharp while (reader.Read()) { int id = reader.GetInt32...

    C#使用ExecuteReader返回DataReader

    在C#编程中,`ExecuteReader`方法是用于执行SQL查询或存储过程并返回一个`DataReader`对象,它提供了一种高效的方式连续读取数据库中的数据流,而不一次性加载所有结果到内存。当我们处理大量数据时,这种方法尤其...

    .NET中的DataReader简介

    1. **只读性**:`DataReader` 只能向前读取数据,并且不能修改数据。 2. **非缓存**:数据不会被缓存在内存中,每次读取数据时都是从数据库中直接获取。 3. **连接保持打开状态**:在使用 `DataReader` 期间,对应的...

    把DataReader转换成DataTable的方法

    3. **使用GetSchemaTable方法获取列信息**:利用DataReader的`GetSchemaTable()`方法来获取表结构信息,包括列名、数据类型等。 4. **构建DataTable的列结构**:根据获取的列信息添加列到DataTable中。 5. **填充...

    DataReader反射泛型实体对象

    这个方法首先检查`DataReader`是否有数据,然后创建一个新实例的`T`(假设它有一个无参构造函数),获取`T`的所有公共属性,遍历每一列,将数据库的值设置到对应的属性上。注意这里需要处理`DBNull`值,因为数据库中...

    11:ADO.NET_Command、DataReader对象和操作

    ADO.NET_Command、DataReader对象及其操作是ADO.NET框架中不可或缺的部分,它们为开发者提供了强大而灵活的数据访问能力。通过合理利用这些组件,可以显著提高数据访问的效率和应用程序的性能。无论是进行复杂的数据...

    Command、DataReader对象

    `Command`对象提供了多种方法来执行命令,如`ExecuteNonQuery`用于执行不返回结果集的DML(增删改)操作,`ExecuteScalar`用于返回单个值,如查询结果的首行首列,而`ExecuteReader`则用于获取数据流式的结果集。...

    三层+LIST+DATAREADER

    它不占用大量内存,因此适用于处理大型数据集。在DAL层,通常通过SqlCommand的ExecuteReader方法获取DataReader实例,然后在BLL层中遍历它来处理数据。 总结来说,三层架构提供了良好的结构和分离,使得代码易于...

    datareader实例代码.rar_csharp datareader_csharp 实例_datareader_datare

    数据读取器(DataReader)是.NET框架中用于高效地从数据库检索数据的一种对象。它是一个只进不退的流式数据访问接口,通常与Command对象配合使用,执行SQL查询并实时返回结果。在这个名为"datareader实例代码.rar"的...

    c#中SqlHelper封装SqlDataReader的方法

    本文实例讲述了c#中.../// 2.DataReader不能关闭 /// 3.command对象执行ExecuteReader()的时候需要传递一个参数CommandBehavior.CloseConnection /// </summary> /// <param name=sql></param> /// <param name=

    关于值类型与列类型不匹配,所需类型是 DataRow的解决方案

    例如,如果 `SqlDataReader` 中某列的数据类型为 `int`,而在 `DataTable` 中对应列的数据类型被设置为了 `string`,那么就会出现“值类型与列类型不匹配”的错误。 #### 解决方案 为了避免类型不匹配的问题,可以...

    使用DataReader对象访问数据库

    使用`DataReader`的优点在于它的效率,因为它不将所有数据一次性加载到内存中,而是按需读取,这对于处理大量数据非常有用。然而,由于它只能向前读取,所以不适合那些需要回溯或随机访问数据的应用场景。在处理大量...

    elitech-datareader:Elitech RC-4 数据访问工具和库

    Elitech RC4 / RC5 数据读取器描述该软件是一个数据采集工具,用python编写,用于温度数据记录器RC-4/RC-5和温湿度数据记录器RC-4HC。 / / 是一款合理的数据记录仪。 RC-5+(注意加号“+”)。 不吃晚饭。 允许在Mac...

    asp.net中用DataReader高效率分页

    用DataReader分页 代码如下: /// <summary> /// PageList for DataReader /// </summary> /// ”connectionString”></param> /// ”sql”></param> /// ”pageSize”></param> /// ”curPage”></param> /// ”...

    Python库 | datareader-0.0.3.tar.gz

    4. **时间序列分析**:由于数据通常以时间序列的形式存在,datareader库与Pandas的集成使得时间序列分析变得简单。用户可以进行数据清洗、计算趋势、分析周期性,甚至构建预测模型。 5. **数据更新**:datareader库...

    晨星网基金数据爬取&汇总分析

    标题 "晨星网基金数据爬取&汇总分析" 涉及到的主要知识点包括: 1. 基金数据:晨星网是一个提供全面基金信息的平台,包括基金净值、历史业绩、风险评级等,这些数据对投资者进行基金研究和决策至关重要。 2. 网络...

    ADO.NET全套资料 连接数据库 数据绑定 Command对象和DataReader对象 DataAdapter对象和DataSet对象 ADO。Net高级编程

    ADO.NET全套资料 连接数据库 数据绑定(建立和管理简单数据绑定 建立和管理复杂的数据绑定) Command对象和DataReader对象(Command,DataReader对象属性和方法 ) DataAdapter对象和DataSet对象() ADO。...

Global site tag (gtag.js) - Google Analytics