ADO.NET访问数据库SqlCommand的ExecuteReader方法一般配合sqldatareader使用

摘要:
在系统开销和性能方面,数据读取器对象的使用都非常有效。它在任何时候只能缓存一条记录,不会将整个结果写入内存,从而避免了内存的大量使用,提高了系统性能。在定义sqldatareader对象时,需要使用sqlcommand对象的executeheader方法进行初始化。

用于执行查询语句并返回一个DataReader类型的行集合.

在与数据库交互中,要获得数据访问的结果可用连载方法实现,一个是datareader对象从数据源中获得数据并进行处理;另一种是通过dataset对象将数据存放在内存中进行处理

datareader可以顺序地查询结果集中读取记录,他的特点是单向向前,速度快占用内存少。使用datareader对象无论在系统开销还是在性能方面都很有效,他在任何时候只能缓存一条记录,并且没有将整个结果写入内存,从而避免内存大量使用,提高了系统性能。

主要方法有getname 取得字段名称,read读取下一条记录,返回值为布尔类型,下一条存在就是true,不存在就是false,一般使用weile循环读取整个数据。

using System.Data;
using System.Data.SqlClient;

public partial class test3 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        SqlConnection con = new SqlConnection();
        con.ConnectionString = "server=.;database=航空订票系统;uid=sa;pwd=;";
        SqlCommand cmd = new SqlCommand();
        cmd.Connection = con;
        cmd.CommandText = "select * from 用户表";
        try
        {
            con.Open();
            SqlDataReader reader = cmd.ExecuteReader();
            Response.Write("用户编号" + "  " + "用户名" + "<br>");
            while (reader.Read())
            {
                Response.Write(reader[0] + "  " + reader[1] + "<br>");
            }
            reader.Close();
            con.Close();
        }
        //finally
       // {
      //  }

        catch (Exception)
        {
            Response.Write("数据库访问异常,请重试");
            con.Close();
        }

    }
}

reader[0] 表示当前记录的第一个字段,[1]即第二个字段,reader[0]也可以写成reader[“字段名称”],或者写成 reader.getbalue(0)

reader.close() 关闭读取器对象

read方法用来遍历整个结果集,不需要指定向前移动指针,系统判断有无记录,有记录继续读取,无记录返回false 结束while语句。

定义sqldatareader对象时需要使用sqlconmand对象的executereader方法初始化。

免责声明:文章转载自《ADO.NET访问数据库SqlCommand的ExecuteReader方法一般配合sqldatareader使用》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇git 设置远程库别名在Tomcat服务器中启动SpringBoot项目原理(简化版)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

mysql备份相关

1linux下mysql导出文件 备份mysql数据库的命令mysqldump -h主机名 -u用户名 -p密码 数据库名字 > 备份的数据库名字.sql 例如:mysqldump  -uroot -p1234 springboot   >/tmp/springboot.sql 仅仅备份数据库结构(不带表数据) mysqldump --no-...

mongodb的备份还原

一:备份数据库 G:Program FilesMongoDBServer3.0in>mongodump -d mydb -o g:/data/back mongodump -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 -o 文件存在路径 如果没有用户,可以去掉-u和-p。如果导出本机的数据库,可以去掉-h。如果是默认端口,可...

Mysql常见的引擎

常用的引擎是:Innodb和Myiasm这两种引擎: innodb: 提供了对事务的ACID操作,还提供了行级锁和外键约束,,他的优势就是处理大量数据,在msql启动的时候,首先会建立一个缓存池,主要是缓存数据和索引,但是操作大规模的数据查找时很慢,所以建议当需要数据库的事务操作时,使用这个,还有就是在写的时候不会锁定全表,所以在大规模并发操作的时候会提高...

用Socket开发的一枚小型实时通信App

Socket 英文原意是插座。 在网络世界里, 当一台主机温柔而体贴的同时提供多个服务时, 每个服务被绑定在一个端口上, 而每个端口就好像一个小插座。 用户们连接对应的插座去获取相应的服务。 在Node.js中,使用的是socket.io来实现Realtime的通信。 当程序两端实现数据通信时, 每一端便化身为一枚可爱的Socket了。 本示例使用Expr...

ACCESS和MSSQL-如何随机读取数据库记录

查询语句只要这样写,就可以随机取出记录了 SQL="Select top 6 * from Dv_bbs1 where isbest = 1 and layer = 1 order by newID() desc" 在ACCESS里SELECT top 15 id FROM tablename order by rnd(id) SQL Server:Sel...

sql 排序时某些数据指定在前面然后再order by

      有时候order by有这种需求:需要某个userid的数据排在第一行,然后再跟进其他字段进行order by 。 怎么处理这种需求。可以这么用: select * from user order by  case when userid =xx then  0 else userid end --我们把userid等于指定数值的设置为0这样就...