zoukankan      html  css  js  c++  java
  • DateReader读取数据

    DateReader对象提供了用循序的、只读的方式读取Command对象获取的数据结果集正是因为DateReader是以循序的方法连续地读取数据,所以DateReader会以独占的方式打开数据库连接。

    由于DateReader只执行读取操作,并且每次只在内存缓冲区里存储结果集的一条数据,所以使用DateReader对象的效率比较高,如果查询大量数据,同时不需要随机访问和修改数据,DateReader是优先的选择。

    DateReader对象属性

    FieldCount属性表示记录中有多少字段

    HasRows属性用来表示DateReader是否包含数据

    IsClosed属性表示DateReader是否关闭

    Close方法DateReader对象关闭

    GetDateTYpeName方法取得指定字段的数据形态

    GetName方法取得指定字段的字段名称

    GetOrdinal方法取得指定字段名称在记录中的顺序

    GetValue方法取得指定字段的数据

    GetValues方法取得全部字段的数据

    Read方法读取下一条记录

    string conn = "server=192.168.100.222;user=sa;pwd=p@ssw1rd;database=pwd1";
                SqlConnection myconn = new SqlConnection();
                myconn.ConnectionString = conn;
                try
                {
                    myconn.Open();
                    string str = "select * from book";
                    SqlCommand mycom=new SqlCommand(str,myconn);
                    SqlDataReader mdr;     
                    mdr = mycom.ExecuteReader();
                    if (mdr.HasRows)
                    {
                        Console.WriteLine("book表中有数据");
                    }
                    else
                    {
                        Console.WriteLine("bookl表中没有数据");
                    }
                    while (mdr.Read())
                    {
                        Console.Write(mdr[0]+" ");
                        Console.Write(mdr[1]+" ");
                        Console.Write(mdr[2]+"   ");
                        Console.WriteLine();
                    }
                }
                catch (Exception ex)
                {
    
                    Console.WriteLine(ex.Message.ToString());
                }
                finally
                {
                    myconn.Close();
                }
                Console.ReadKey();
    

      

    SqlDataReader不能实例化,因为没有构造函数

    SqlDataReader dr=SqlCommand.ExecuteReader();

    //什么这么写SqlDataReader不能实例化,而SqlCommand.ExecuteReader方法返回了一个对象,(public SqlDataReader ExecuteReader();{return (SqlDataReader)内容}

    实例1 判断PWD1表中是否是数据(提示;通过查询mytable返回DateReader对象,经HasRows属性判断mytable中是否有数据)
     static void Main(string[] args)
            {
                string str = "server=192.168.100.222;user=sa;pwd=p@ssw1rd;database=pwd1";
                SqlConnection mycon = new SqlConnection(str);
                mycon.Open();
                string sql = "select * from book";
                SqlCommand mycom = new SqlCommand(sql,mycon);
     //声明DateReader
                SqlDataReader mydr; 
                mydr = mycom.ExecuteReader();
    //判断是否有数据
                if (mydr.HasRows)
                {	
                    Console.WriteLine("pwd1中存在数据");
                }
                else
                {
                    Console.WriteLine("pwd1中不存在任何数据");
                }
    			//看看这个表里面有几个字段
    			Console.WriteLine(myder.fildcount);
    			//看看dateReader是否关闭会显示false
    			Console.WriteLine(mydr.islosed);
                mydr.Close();
    			//这次会显示true
    			Console.WriteLine(mydr.islosed);
                mycon.Close();
                Console.ReadKey();
    
    			***以后写代码的时候这么写***
    	Try
    	{
    		连接数据库和打开数据库就写在这里面
    }
    Catch(exception ex)
    {
    	//程序错误的时候会显示
    	Console.writelin(ex.message.tostring());
    }
    
    Finally
    {
    	//这里面写关闭数据库
    }
    
    Getvalues
    	//声明DateReader
                SqlDataReader mydr;
                mydr = mycom.ExecuteReader();
    
    	首先声明一个object数组,因为object是所有类型的基类,一个数据表有int char varchar bit date……..等所以要用object基类
    	//声明object数组多长呢?那就需要我们的函数fielCount了,他能统计我们表中有多少个字段
    	Object [] myobj =new object[mydr.fielCount];
    	//全部显示myobj数组里面的数据,需要循环
    	Mydr.getValues(myobj);
    	While(mydr.Read())
    	Foreach(obect outobj in myobj)
    	{
    		Mydr.getValues(myobj);
    		Console.writeline(outobj+”	”);
    }
    

      

  • 相关阅读:
    今天看到的一些好文语句摘录
    laravel5 怎么获取数组形式的数据
    laravel5.4将excel表格中的信息导入到数据库中
    phpmax_execution_time
    laravel 5.4 导出excel表格
    使用php函数ini_set()重新设置某个配置的设置值
    艾伟_转载:VS.NET 2010 新功能 [整理] 狼人:
    艾伟_转载:[一步一步MVC]第五回:让TagBuilder丰富你的HtmlHelper 狼人:
    艾伟_转载:.NET 4.0中数组的新增功能 狼人:
    艾伟_转载:一个简单的 Generic Factory 类 狼人:
  • 原文地址:https://www.cnblogs.com/xiaowie/p/8624436.html
Copyright © 2011-2022 走看看