1. 程式人生 > >sql存儲過程,根據多個條件查詢,返回一個dataTable或者DataSet

sql存儲過程,根據多個條件查詢,返回一個dataTable或者DataSet

bold new exc cnblogs 所有 sql存儲過程 存儲 ring table

不廢話,先直接代碼

首先sql部分(我在這裏加了一個@zx作為判斷,一般不需要這個參數):

ALTER Proc [dbo].[Proc_Boss_Show]
@StrIndex varchar(500),--開始條數
@EndIndex varchar(500),--結束條數
@StrWhere  varchar(max),
@zx int --執行區間  1執行 top n  2顯示所有數據
as

begin
     declare  @strSqlstr varchar(500)
     
     if(@zx=1)
     begin
         set @strSqlstr=
select * from (select top +@EndIndex set @strSqlstr+= row_number() over(order by 提貨時間 desc) as xx,* from View_Boss_Show where 1=1 +@StrWhere set @strSqlstr+= ) as xx where xx>+@StrIndex end if(@zx=2) begin set @strSqlstr=select * from View_Boss_Show where 1=1
+@StrWhere end print @strSqlstr exec(@strSqlstr)

asp.net代碼(直接用DataTable接收):

DataTable dt = null;
            try
            {
                dt = DBHelper.GetDataTable("Proc_View_show1391", para);
            }
            catch (Exception ex)
            { //throw new Exception(ex.ToString());
}

sql存儲過程,根據多個條件查詢,返回一個dataTable或者DataSet