ADO.NET,你的极限是什么?--ADO.NET之另类绑定

简介:
        在.NET应用中,数据库的成分不仅是整个.NET框架重要的部分,也是设计页面和后台的关键.
        ADO.NET你的极限是什么?
1. 页面文件有两个TEXTBOX控件用来设置查找范围。下面一个DATAGRID,用来绑定数据库的数据。
2.后台代码片段:
InBlock.gif public partial  class FinanceReport : PageBase 
InBlock.gif
InBlock.gif     public  static String CONN = System.Configuration.ConfigurationManager.AppSettings.Get( "ConnectionString"); 
InBlock.gif 
InBlock.gif     protected  void Page_Load( object sender, EventArgs e) 
InBlock.gif    { 
InBlock.gif        PageBegin( truefalse); 
InBlock.gif 
InBlock.gif         if (IsPostBack) 
InBlock.gif             return
InBlock.gif 
InBlock.gif        FromDate.Text = DateTime.Now.Year.ToString() +  "-1-1"
InBlock.gif        ToDate.Text = (DateTime.Now.Year + 1).ToString() +  "-1-1"
InBlock.gif 
InBlock.gif        PageFill(); 
InBlock.gif    } 
InBlock.gif     protected  void QueryButton_Click( object sender, EventArgs e) 
InBlock.gif    { 
InBlock.gif         if (DateUtil.IsDateTime(FromDate.Text) ==  false || DateUtil.IsDateTime(FromDate.Text) ==  false
InBlock.gif        { 
InBlock.gif            Session[ "CM_report_FromDate"] = ""; 
InBlock.gif            Session[ "CM_report_ToDate"] = ""; 
InBlock.gif        } 
InBlock.gif         else 
InBlock.gif        { 
InBlock.gif            Session[ "CM_report_FromDate"] = FromDate.Text; 
InBlock.gif            Session[ "CM_report_ToDate"] = ToDate.Text; 
InBlock.gif        } 
InBlock.gif 
InBlock.gif        BuildTable(); 
InBlock.gif 
InBlock.gif    } 
InBlock.gif     protected  void PageFill() 
InBlock.gif    { 
InBlock.gif         if (Session[ "CM_Year"] !=  null
InBlock.gif        { 
InBlock.gif            FromDate.Text = Session[ "CM_Year"] +  "-1-1"
InBlock.gif            ToDate.Text =  int.Parse(Session[ "CM_Year"].ToString()) + 1 +  "-1-1"
InBlock.gif        } 
InBlock.gif 
InBlock.gif         if (Session[ "CM_report_FromDate"] !=  null
InBlock.gif            FromDate.Text = Session[ "CM_report_FromDate"].ToString(); 
InBlock.gif         if (Session[ "CM_report_ToDate"] !=  null
InBlock.gif            ToDate.Text = Session[ "CM_report_ToDate"].ToString(); 
InBlock.gif 
InBlock.gif        BuildTable(); 
InBlock.gif    } 
InBlock.gif     protected  void BuildTable() 
InBlock.gif    { 
InBlock.gif        SqlConnection conn =  new SqlConnection(); 
InBlock.gif        conn.ConnectionString = CONN; 
InBlock.gif        SqlCommand command =  new SqlCommand(); 
InBlock.gif 
InBlock.gif        command.CommandText =  "CM_Test"
InBlock.gif        command.CommandType = CommandType.StoredProcedure; 
InBlock.gif        command.Connection = conn; 
InBlock.gif 
InBlock.gif        SqlParameter param =  new SqlParameter( "@FromDate", SqlDbType.DateTime); 
InBlock.gif         if (DateUtil.IsDateTime(FromDate.Text) ==  false
InBlock.gif        { 
InBlock.gif            param.Value = DateTime.Parse(DateTime.Now.Year.ToString() +  "-1-1"); 
InBlock.gif        } 
InBlock.gif         else 
InBlock.gif        { 
InBlock.gif            param.Value = DateTime.Parse(FromDate.Text); 
InBlock.gif        } 
InBlock.gif        command.Parameters.Add(param); 
InBlock.gif        param =  new SqlParameter( "@ToDate", SqlDbType.DateTime); 
InBlock.gif         if (DateUtil.IsDateTime(ToDate.Text) ==  false
InBlock.gif        { 
InBlock.gif            param.Value = DateTime.Parse((DateTime.Now.Year + 1).ToString() +  "-1-1"); 
InBlock.gif        } 
InBlock.gif         else 
InBlock.gif        { 
InBlock.gif            param.Value = DateTime.Parse(ToDate.Text); 
InBlock.gif        } 
InBlock.gif        command.Parameters.Add(param); 
InBlock.gif 
InBlock.gif        DataSet ds =  new DataSet(); 
InBlock.gif        SqlDataAdapter da =  new SqlDataAdapter(); 
InBlock.gif        da.SelectCommand = command; 
InBlock.gif        da.Fill(ds); 
InBlock.gif        DG.DataSource = ds; 
InBlock.gif        DG.DataBind(); 
InBlock.gif    } 
InBlock.gif}
说明:后台代码中设计时间范围的小技巧很好用,借助JS,点击TEXTBOX控件的时候就会激发封装好的日历,然后选择日期,就可以自动完成填充了。下面就是绑定了。调用了“CM_Test”
3.数据库存储过程,精彩的来了:
CREATE  PROCEDURE CM_Test 
  
    @FromDate  datetime
    @ToDate  datetime 

AS 
     declare @title  varchar(50) 
     declare @ic  float 
     declare @asb  float 
     declare @sales  float 


     declare @tmpSales  table(CID  varchar(50),Company  varchar(50), Money  float,TPSOMoney  float,TPSIMoney  float
    TPHOMoney  float,TPHIMoney  float,SPMoney  float,SPIMoney  float,CDMoney  float,IMoney  float
    OMoney  float,GSMoney  float,Dep  varchar(50),InvoiceMoney  float,NotInvoiceMoney  float
    ReceiveMoney  float,NotReceiveMoney  float,InvoiceNotReMoney  float,RealReceiveMoney  float
     declare @tmpIC  table(CID  varchar(50),Company  varchar(50), Money  float,TPSOMoney  float,TPSIMoney  float
    TPHOMoney  float,TPHIMoney  float,SPMoney  float,SPIMoney  float,CDMoney  float,IMoney  float
    OMoney  float,GSMoney  float,Dep  varchar(50),InvoiceMoney  float,NotInvoiceMoney  float
    ReceiveMoney  float,NotReceiveMoney  float,InvoiceNotReMoney  float,RealReceiveMoney  float
     declare @tmpASB  table(CID  varchar(50),Company  varchar(50), Money  float,TPSOMoney  float,TPSIMoney  float
    TPHOMoney  float,TPHIMoney  float,SPMoney  float,SPIMoney  float,CDMoney  float,IMoney  float
    OMoney  float,GSMoney  float,Dep  varchar(50),InvoiceMoney  float,NotInvoiceMoney  float
    ReceiveMoney  float,NotReceiveMoney  float,InvoiceNotReMoney  float,RealReceiveMoney  float

     declare @tmp    table(item  varchar(50),ic  float,asb  float,sales  float

     insert @tmpSales  select CID,Company, Money,TPSOMoney,TPSIMoney, 
    TPHOMoney,TPHIMoney,SPMoney,SPIMoney,CDMoney,IMoney, 
    OMoney,GSMoney,Dep,InvoiceMoney,NotInvoiceMoney, 
    ReceiveMoney,NotReceiveMoney,InvoiceNotReMoney,RealReceiveMoney 
     from CM_Sales  where DelFlag=0  and SignDate >= @FromDate  and SignDate < @ToDate 
     insert @tmpIC  select *  from @tmpSales  where Company  not  like  '%公司名字%' 
     insert @tmpASB  select *  from @tmpSales  where Company  like  '%公司名字%' 

     select @ic= Count(CID)  from @tmpIC  select @asb= Count(CID)  from @tmpASB  select @sales=@ic+@asb 
     insert @tmp  values( '合同数:',@ic,@asb,@sales) 

     select @ic= Sum( Moneyfrom @tmpIC  select @asb= Sum( Moneyfrom @tmpASB  select @sales=@ic+@asb 
     insert @tmp  values( '合同总额:',@ic,@asb,@sales) 
/* 
    select @ic=Sum(TPSIMoney)+Sum(TPHIMoney)+Sum(SPIMoney) from @tmpIC select @asb=Sum(TPSIMoney)+Sum(TPHIMoney)+Sum(SPIMoney) from @tmpASB select @sales=@ic+@asb  
    insert @tmp values('采购总额:',@ic,@asb,@sales) 
*/
 
     select @ic= sum( Moneyfrom CM_SalesTProduct  where CID  in ( select ID  from CM_Sales  where DelFlag=0  and SignDate >= @FromDate  and SignDate < @ToDate  and Company  not  like  '%公司名字%'
     select @asb= sum( Moneyfrom CM_SalesTProduct  where CID  in ( select ID  from CM_Sales  where DelFlag=0  and SignDate >= @FromDate  and SignDate < @ToDate  and Company  like  '%公司名字%'
     select @sales=@ic+@asb 
     insert @tmp  values( '采购总额:',@ic,@asb,@sales) 

insert @tmp  values( '————————————————', null, null, null

     select @ic= Sum(SPMoney)+ Sum(GSMoney)  from @tmpIC  select @asb= Sum(SPMoney)+ Sum(GSMoney)  from @tmpASB  select @sales=@ic+@asb 
     insert @tmp  values( '(自有+服务)合同额:',@ic,@asb,@sales) 

     select @ic= Sum(TPSOMoney)+ Sum(TPHOMoney)  from @tmpIC  select @asb= Sum(TPSOMoney)+ Sum(TPHOMoney)  from @tmpASB  select @sales=@ic+@asb  
     insert @tmp  values( '第三方软硬件合同额:',@ic,@asb,@sales) 

insert @tmp  values( '————————————————', null, null, null

     select @ic= Sum(TPHOMoney)  from @tmpIC  select @asb= Sum(TPHOMoney)  from @tmpASB  select @sales=@ic+@asb 
     insert @tmp  values( '第三方硬件合同额:',@ic,@asb,@sales) 

     select @ic= Sum(TPHIMoney)  from @tmpIC  select @asb= Sum(TPHIMoney)  from @tmpASB  select @sales=@ic+@asb 
     insert @tmp  values( '第三方硬件采购额:',@ic,@asb,@sales) 

     select @ic= Sum(TPSOMoney)  from @tmpIC  select @asb= Sum(TPSOMoney)  from @tmpASB  select @sales=@ic+@asb 
     insert @tmp  values( '第三方软件合同额:',@ic,@asb,@sales) 

     select @ic= Sum(TPSIMoney)  from @tmpIC  select @asb= Sum(TPSIMoney)  from @tmpASB  select @sales=@ic+@asb 
     insert @tmp  values( '第三方软件采购额:',@ic,@asb,@sales) 

     select @ic= Sum(SPMoney)  from @tmpIC  select @asb= Sum(SPMoney)  from @tmpASB  select @sales=@ic+@asb 

     insert @tmp  values( '自有产品合同额:',@ic,@asb,@sales) 

     select @ic= Sum(SPIMoney)  from @tmpIC  select @asb= Sum(SPIMoney)  from @tmpASB  select @sales=@ic+@asb 
     insert @tmp  values( '自有产品采购额:',@ic,@asb,@sales) 

     select @ic= Sum(CDMoney)+ Sum(IMoney)+ Sum(GSMoney)+ Sum(OMoney)  from @tmpIC  select @asb= Sum(CDMoney)+ Sum(IMoney)+ Sum(GSMoney)+ Sum(OMoney)  from @tmpASB  select @sales=@ic+@asb 
     insert @tmp  values( '服务及其他合同额:',@ic,@asb,@sales) 

insert @tmp  values( '————————————————', null, null, null

     select @ic= Sum(InvoiceMoney)  from @tmpIC  select @asb= Sum(InvoiceMoney)  from @tmpASB  select @sales=@ic+@asb 
     insert @tmp  values( '已开票总额:',@ic,@asb,@sales) 

     select @ic= Sum(ReceiveMoney)  from @tmpIC  select @asb= Sum(ReceiveMoney)  from @tmpASB  select @sales=@ic+@asb 
     insert @tmp  values( '已回款总额:',@ic,@asb,@sales) 

     select @ic= Sum(NotReceiveMoney)  from @tmpIC  select @asb= Sum(NotReceiveMoney)  from @tmpASB  select @sales=@ic+@asb 
     insert @tmp  values( '未回款总额:',@ic,@asb,@sales) 

     select @ic= Sum(InvoiceNotReMoney)  from @tmpIC  select @asb= Sum(InvoiceNotReMoney)  from @tmpASB  select @sales=@ic+@asb 
     insert @tmp  values( '已开票未回款总额:',@ic,@asb,@sales) 
  
     select @ic= Sum(RealReceiveMoney)  from @tmpIC  select @asb= Sum(RealReceiveMoney)  from @tmpASB  select @sales=@ic+@asb 
     insert @tmp  values( '实际应收款总额 :',@ic,@asb,@sales) 

insert @tmp  values( '————————————————', null, null, null

     select @ic= Sum(SPMoney)+ Sum(GSMoney)+ Sum(IMoney)  from @tmpIC  where dep=57  select @asb= Sum(SPMoney)+ Sum(GSMoney)+ Sum(IMoney)  from @tmpASB  where dep=57  select @sales= Sum(SPMoney)+ Sum(GSMoney)+ Sum(IMoney)  from @tmpSales  where dep=57 
     insert @tmp  values( 'BU1(自有+服务)合同额 :',@ic,@asb,@sales) 

     select @ic= Sum(SPMoney)+ Sum(GSMoney)+ Sum(IMoney)  from @tmpIC  where dep=43  select @asb= Sum(SPMoney)+ Sum(GSMoney)+ Sum(IMoney)  from @tmpASB  where dep=43  select @sales= Sum(SPMoney)+ Sum(GSMoney)+ Sum(IMoney)  from @tmpSales  where dep=43 
     insert @tmp  values( 'BU2(自有+服务)合同额 :',@ic,@asb,@sales) 

     select @ic= Sum(SPMoney)+ Sum(GSMoney)+ Sum(IMoney)  from @tmpIC  where dep=60  select @asb= Sum(SPMoney)+ Sum(GSMoney)+ Sum(IMoney)  from @tmpASB  where dep=60  select @sales= Sum(SPMoney)+ Sum(GSMoney)+ Sum(IMoney)  from @tmpSales  where dep=60 
     insert @tmp  values( 'BU3(自有+服务)合同额 :',@ic,@asb,@sales) 

     select @ic= Sum(SPMoney)+ Sum(GSMoney)+ Sum(IMoney)  from @tmpIC  where dep=88  select @asb= Sum(SPMoney)+ Sum(GSMoney)+ Sum(IMoney)  from @tmpASB  where dep=88  select @sales= Sum(SPMoney)+ Sum(GSMoney)+ Sum(IMoney)  from @tmpSales  where dep=88 
     insert @tmp  values( 'BU4(自有+服务)合同额 :',@ic,@asb,@sales) 

     select @ic= Sum(SPMoney)+ Sum(GSMoney)+ Sum(IMoney)  from @tmpIC  where dep=50  select @asb= Sum(SPMoney)+ Sum(GSMoney)+ Sum(IMoney)  from @tmpASB  where dep=50  select @sales= Sum(SPMoney)+ Sum(GSMoney)+ Sum(IMoney)  from @tmpSales  where dep=50 
     insert @tmp  values( 'BU5(自有+服务)合同额 :',@ic,@asb,@sales) 

     select @ic= Sum(SPMoney)+ Sum(GSMoney)+ Sum(IMoney)  from @tmpIC  where dep=58  select @asb= Sum(SPMoney)+ Sum(GSMoney)+ Sum(IMoney)  from @tmpASB  where dep=58  select @sales= Sum(SPMoney)+ Sum(GSMoney)+ Sum(IMoney)  from @tmpSales  where dep=58 
     insert @tmp  values( 'BU6(自有+服务)合同额 :',@ic,@asb,@sales) 

     select @ic= Sum(SPMoney)+ Sum(GSMoney)+ Sum(IMoney)  from @tmpIC  where dep=78  select @asb= Sum(SPMoney)+ Sum(GSMoney)+ Sum(IMoney)  from @tmpASB  where dep=78  select @sales= Sum(SPMoney)+ Sum(GSMoney)+ Sum(IMoney)  from @tmpSales  where dep=78 
     insert @tmp  values( 'BU7(自有+服务)合同额 :',@ic,@asb,@sales) 

     select @ic= Sum(SPMoney)+ Sum(GSMoney)+ Sum(IMoney)  from @tmpIC  where dep=83  select @asb= Sum(SPMoney)+ Sum(GSMoney)+ Sum(IMoney)  from @tmpASB  where dep=83  select @sales= Sum(SPMoney)+ Sum(GSMoney)+ Sum(IMoney)  from @tmpSales  where dep=83 
     insert @tmp  values( 'BU8(自有+服务)合同额 :',@ic,@asb,@sales) 

     select @ic= Sum(SPMoney)+ Sum(GSMoney)+ Sum(IMoney)  from @tmpIC  where dep=70  select @asb= Sum(SPMoney)+ Sum(GSMoney)+ Sum(IMoney)  from @tmpASB  where dep=70  select @sales= Sum(SPMoney)+ Sum(GSMoney)+ Sum(IMoney)  from @tmpSales  where dep=70 
     insert @tmp  values( 'SRS服务合同额 :',@ic,@asb,@sales) 

     select @ic= Sum(SPMoney)+ Sum(GSMoney)+ Sum(IMoney)  from @tmpIC  where dep=66  select @asb= Sum(SPMoney)+ Sum(GSMoney)+ Sum(IMoney)  from @tmpASB  where dep=66  select @sales= Sum(SPMoney)+ Sum(GSMoney)+ Sum(IMoney)  from @tmpSales  where dep=66 
     insert @tmp  values( 'SIS服务合同额 :',@ic,@asb,@sales) 


     select *  from @tmp 
GO 
说明:。。。这个存储过程直接搞定这个页面,数据库也可以这样完成,我也是第一次接触这样的存储过程。里面带"Money"的变量都是数据库存储金额的类型,这个页面的功能是统计功能。红字的就直接显示在表里面了--即“统计项”;ic--即集成合同;asb--即ASB合同;Sales--即销售合同。





     本文转自L.net 51CTO博客,原文链接:http://blog.51cto.com/mixangel/56258 ,如需转载请自行联系原作者



相关文章
|
1月前
|
XML 开发框架 .NET
C# .NET面试系列八:ADO.NET、XML、HTTP、AJAX、WebService
## 第二部分:ADO.NET、XML、HTTP、AJAX、WebService #### 1. .NET 和 C# 有什么区别? .NET(通用语言运行时): ```c# 定义:.NET 是一个软件开发框架,提供了一个通用的运行时环境,用于在不同的编程语言中执行代码。 作用:它为多语言支持提供了一个统一的平台,允许不同的语言共享类库和其他资源。.NET 包括 Common Language Runtime (CLR)、基础类库(BCL)和其他工具。 ``` C#(C Sharp): ```c# 定义: C# 是一种由微软设计的面向对象的编程语言,专门为.NET 平台开发而创建。 作
173 2
|
4月前
|
存储 开发框架 .NET
Asp.net就业课之Ado.net第一次课
Asp.net就业课之Ado.net第一次课
20 0
|
7月前
|
JSON 数据格式
.NET Core - 配置绑定:使用强类型对象承载配置数据
.NET Core - 配置绑定:使用强类型对象承载配置数据
|
7月前
.NET Core配置强类型绑定及配置热更新能力
学习了配置框架的4种配置方式之后,我们可以对不同的环境选择不同的配置方式,以使服务能够更好的适应各种环境,那么,你是否觉得配置虽然加载进服务中,但是使用起来却不是很方便,每次读取都得通过对应的键值去根查找,是否想过如果我们修改了配置文件呢?本篇,我们一起来学习下这两个问题。为了方便演示,本节使用文件提供程序配置方式。
|
前端开发
.NET MVC第五章、模型绑定获取表单数据
.NET MVC第五章、模型绑定获取表单数据
58 0
.NET MVC第五章、模型绑定获取表单数据
|
前端开发
.NET MVC第四章、模型绑定获取表单数据
.NET MVC第四章、模型绑定获取表单数据
84 0
.NET MVC第四章、模型绑定获取表单数据
|
JSON 数据格式
.NET读取json数据并绑定到对象
原文:.NET读取json数据并绑定到对象 需要引用的命名空间:       读取的具体应用: this代表本实体(对象),通过PopulateObject,直接将读取到的json数据与对象进行绑定       Json保存的具体应用: 将对象保存为Json     JOb...
843 0
|
网络协议 Linux .NET
使用.NetCore在Linux上写TCP listen 重启后无法绑定地址
拥抱.net core的过程中, 将公司的一套java项目改成了.net core 2.0版的. 里面的tcp服务被我用msdn的SocketAsyncEventArgs方式重写了, 然而在测试的过程中发现, 偶尔会出现重启无法再次绑定监听的情况.
1635 0