zoukankan      html  css  js  c++  java
  • 【Vegas原创】善用procedure写比较长且容易变动的sql语句

     Proc: 完全可以胜任where子句条件查询。

    alter proc procBP_Cost_Query
    @Application nvarchar(50),
    @TechType nvarchar(50),
    @Size nvarchar(50),
    @TACFilm nvarchar(50),
    @Treatment nvarchar(50),
    @Thickness nvarchar(50),
    @ModelGroup nvarchar(50)
    as
    declare @chrSQL   varchar(8000)   

    set @chrSQL='SELECT a.CostID, a.modelgroupID,CostYear as BPYear,aa.CMALPH, a.productCost,a1.Code_Name AS Application, a4.Code_Name AS TechType, a2.Code_Name AS Size, 
           a6.Code_Name AS TACFilm, a5.Code_Name AS Treatment, a3.Code_Name AS Thickness, aa.PGrade as Grade,UpdateDate,UpdateUser as Updatedby
    FROM   T_BPCost AS a INNER JOIN
           T_ModelGroup AS aa ON a.ModelGroupID = aa.ModelGroupID INNER JOIN       
           T_CoddApplication AS a1 ON aa.PApplication = a1.Code_id INNER JOIN
           T_CoddSize AS a2 ON aa.PSize = a2.Code_id INNER JOIN
           T_CoddThickness AS a3 ON aa.PThickness = a3.Code_id INNER JOIN
           T_CoddTechType AS a4 ON aa.PTechType = a4.Code_id INNER JOIN
           T_CoddTreatment AS a5 ON aa.Treatment = a5.Code_id INNER JOIN
           T_CoddTACFilm AS a6 ON aa.PTACFilm = a6.Code_id        
    WHERE  2>1 
    '
     
    if @Application<>'ALL'
    begin
    set @chrSQL=@chrSQL+' and  a1.Code_Name = '''+@Application+'''' --'转义符 
    end

    if @TechType<>'ALL'
    begin 
    set @chrSQL=@chrSQL+' and  a4.Code_Name ='''+@TechType+''''  
    end

    if @Size<>'ALL'
    begin 
    set @chrSQL= @chrSQL+' and  a2.Code_Name = '''+@Size+''''  
    end

    if @TACFilm<>'ALL'
    begin 
    set @chrSQL=@chrSQL+' and a6.Code_Name = '''+@TACFilm+''''  
    end

    if @Treatment<>'ALL'
    begin 
    set @chrSQL=@chrSQL+' and  a5.Code_Name = '''+@Treatment+''''  
    end

    if @Thickness<>'ALL'
    begin 
    set @chrSQL=@chrSQL+' and  a3.Code_Name = '''+@Thickness+''''  
    end

    if @ModelGroup<>'ALL'
    begin 
    set @chrSQL=@chrSQL+' and  aa.PGrade = '''+@ModelGroup+''''  
    end

    set @chrSQL=@chrSQL+ ' order by CMALPH'

    exec (@chrSQL)



    后台代码:

        void bindDataQuery()
        {
            
    //连接数据库,并插入数据
            SqlParameter[] sqlParam = new SqlParameter[7];

            sqlParam[
    0= new SqlParameter("@Application", SqlDbType.NVarChar, 50, ParameterDirection.Input, false00"@Application", DataRowVersion.Default, drpApplication.SelectedValue.Trim());
            sqlParam[
    1= new SqlParameter("@TechType", SqlDbType.NVarChar, 50, ParameterDirection.Input, false00"@TechType", DataRowVersion.Default, drpTech.SelectedValue.Trim());
            sqlParam[
    2= new SqlParameter("@Size", SqlDbType.NVarChar, 50, ParameterDirection.Input, false00"@Size", DataRowVersion.Default, drpSize.SelectedValue.Trim());
            sqlParam[
    3= new SqlParameter("@TACFilm", SqlDbType.NVarChar, 50, ParameterDirection.Input, false00"@TACFilm", DataRowVersion.Default, drpTAC.SelectedValue.Trim());
            sqlParam[
    4= new SqlParameter("@Treatment", SqlDbType.NVarChar, 50, ParameterDirection.Input, false00"@Treatment", DataRowVersion.Default, drpTreatment.SelectedValue.Trim());
            sqlParam[
    5= new SqlParameter("@Thickness", SqlDbType.NVarChar, 50, ParameterDirection.Input, false00"@Thickness", DataRowVersion.Default, drpThickness.SelectedValue.Trim());
            sqlParam[
    6= new SqlParameter("@ModelGroup", SqlDbType.NVarChar, 50, ParameterDirection.Input, false00"@ModelGroup", DataRowVersion.Default, drpGrade.SelectedValue.Trim());

            DataSet ds 
    = db.GetDataSet("procBP_Cost_Query", sqlParam);

            grdPrice.DataSource 
    = ds.Tables[0];
            grdPrice.DataBind();
     
        }
  • 相关阅读:
    vue 表格组件分享
    原创-整理了下常用的js数组 、对象、数字、字符串的操作方法
    h5 plus/h5+规范使用,模块索引,教你如何去看h5+的手册
    vue 右键菜单插件 简单、可扩展、样式自定义的右键菜单
    vuecli3 引入script 针对没有cmd amd require等方式的js
    vue新手入门指导,一篇让你学会vue技术栈,本人初学时候的文档
    node搭建本地服务器
    利用nodeJs anywhere搭建本地服务器环境
    vue封装组件的正确方式-封装类似elementui的组件
    微信小程序自定义模态框(字体图标)
  • 原文地址:https://www.cnblogs.com/amadeuslee/p/3744486.html
Copyright © 2011-2022 走看看