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

  • 相关阅读:
    Qt5."Clang Code Model"一些设置
    基于element表格的合并多个行实例
    vue中,基于echarts 地图实现一个人才回流的大数据展示效果
    vue2.0 子组件props接受父组件传递的值,能不能修改的问题整理
    vue调用组件,组件回调给data中的数组赋值,报错Invalid prop type check failed for prop value. Expecte
    vue,基于element的tree组件封装
    vue父子组件相互传值的实例
    基于vant实现一个问卷调查
    css3实现倾斜转动的转盘
    0801 am使用tp框架对数据库增删改查
  • 原文地址:https://www.cnblogs.com/thinker/p/36238.html
Copyright © 2011-2022 走看看