zoukankan      html  css  js  c++  java
  • SQLDataReader vs Dataset

    Objective:
    To compare and contrast SQLDataReader and SQLDataSetCommand

    Target Audience
    ADO.NET programmer

    Environment
    SQL2000, Visual studio .NET Beta 1
    ibuyspy DataBase

    Structure Of Table
    CREATE TABLE [dbo].[OrderDetails] (
    [OrderID] [int] NOT NULL ,
    [ProductID] [int] NOT NULL ,
    [Quantity] [int] NOT NULL ,
    [UnitCost] [money] NOT NULL
    ) ON [PRIMARY]
    GO

    CREATE TABLE [dbo].[Products] (
    [ProductID] [int] IDENTITY (1, 1) NOT NULL ,
    [CategoryID] [int] NOT NULL ,
    [ModelNumber] [nvarchar] (50) COLLATE Korean_Wansung_CI_AS NULL ,
    [ModelName] [nvarchar] (50) COLLATE Korean_Wansung_CI_AS NULL ,
    [ProductImage] [nvarchar] (50) COLLATE Korean_Wansung_CI_AS NULL ,
    [UnitCost] [money] NOT NULL ,
    [Description] [nvarchar] (3800) COLLATE Korean_Wansung_CI_AS NULL
    ) ON [PRIMARY]

    Stored Procedure
    /* procedure name:NET_PopularProduct_SelectMaster
     * objective           :Weekly Best Items top 5
     */

    CREATE PROCEDURE NET_PopularProduct_SelectMaster 
    as 
    BEGIN 
     select top 5 o.productid,sum(o.quantity) as total,p.modelname 
     from orderdetails o,products p 
     where o.productid=p.productid 
     group by o.productid,p.modelname 
     order by total desc 
    END 
     
    *****************Source Code

    1)Using SQLDataSetCommand

    Conn=new Common.DBConn();
    SQLDataSetCommand Comm=new SQLDataSetCommand("NET_PopularProduct_SelectMaster",Conn);
    Comm.SelectCommand.CommandType=CommandType.StoredProcedure;
    DataSet ds=new DataSet();
    Comm.FillDataSet(ds,"PopItems");
    return ds;


    2)Using SQLDataReader

    Conn=new Common.DBConn();
    SQLCommand Comm=new SQLCommand("NET_PopularProduct_SelectMaster",Conn);
    Comm.CommandType=CommandType.StoredProcedure;
    Conn.Open();
    Comm.Execute(out reader);
    DataTable table=new DataTable("Top5");
    table.Columns.Add(new DataColumn("Product_ID",typeof(System.Int32)));
    table.Columns.Add(new DataColumn("Quantity",typeof(System.Int32)));
    table.Columns.Add(new DataColumn("Product_Name",typeof(System.String)));

    while(reader.Read())
    {
    datarow=table.NewRow();
    datarow[0]=reader.GetInt32(0);
    datarow[1]=reader.GetInt32(1);
    datarow[2]=reader.GetString(2);
    table.Rows.Add(datarow);
    }
    Conn.Close();
    return table;


                                       

    3) Using SQLDataSetCommand 0.0550645255       0.0126954643     0.0131178647 (SEC) 
        Using SQLDataReader --     0.0105256364       0.0104242265    0.0105105508

  • 相关阅读:
    lumen简单使用exel组件
    VIM 批量注释的两种方法 (转)
    linux时间校准 设置时间为上海时区
    lumen发送邮件配置
    centos 下安装redis 通过shell脚本
    shell 脚本接收参数
    linux设置系统变量
    linux通配符
    UCCI协议[转]
    一种编程范式:对拍编程
  • 原文地址:https://www.cnblogs.com/thinker/p/36238.html
Copyright © 2011-2022 走看看