검색 조건으로 페이지를 나누는 저장 프로세스

11562 단어 저장 프로세스
이 저장 프로세스는 주로 두 가지가 있다.
1. 동적 결합 조회 조건의 페이지 나누기
2. 현재 검색 조건을 동적으로 가져오는 총 줄 수
주의: 만약 이러한 연결 조회 조건으로 전송된다면, 시스템을 더욱 안전하게 하기 위해서, 먼저 폼의 특수 문자열을 필터해야 한다
ALTER PROCEDURE [dbo].[OrdersListByCondition]   
  @pagesize int,
  @pageindex int,
  @condition nvarchar(1000),
  @totalcount int output
AS
BEGIN

declare @sql nvarchar(3000)
declare @countSql nvarchar(3000)


if @condition=''
begin
-- * set @sql=' select * from (select top '+cast(@pagesize as nvarchar(30)) +' * from E_Orders where OrderID not in (select top ('+cast(@pagesize as nvarchar(30)) +' *('+cast(@pageindex as nvarchar(30)) +'-1)) OrderID from E_Orders order by OrderID desc) order by OrderID desc) o left join E_OrdersCommodity oc on o.OrderID=oc.OrderID order by OrderID desc' set @countSql='select @a=count(1) from E_Orders' end else begin set @sql=' select * from (select top '+cast(@pagesize as nvarchar(30)) +' * from E_Orders where OrderID not in (select top ('+cast(@pagesize as nvarchar(30)) +' *('+cast(@pageindex as nvarchar(30)) +'-1)) OrderID from E_Orders where '+ @condition+' order by OrderID desc) and '+ @condition+' order by OrderID desc) o left join E_OrdersCommodity oc on o.OrderID=oc.OrderID order by OrderID desc' set @countSql='select @a=count(1) from E_Orders where '+ @condition+'' end exec(@sql) execute sp_executesql @countSql,N'@a INT output',@totalcount output END

백그라운드 연결 파라미터는 형식을 주의해야 합니다: 필드 이름 = '값', 조건은 OrderID = '20150721578942'and Contacts='넷째'
 /// <summary>
    ///   SQL    
    /// </summary>
    /// <param name="strOrderStatus"></param>
    /// <param name="strOrderID"></param>
    /// <param name="strMallName"></param>
    /// <param name="strContacts"></param>
    /// <returns></returns>
    private string[] GetConditionArray(string strOrderStatus,  string strOrderID, string strMallName, string strContacts)
    {
        List<string> list = new List<string>();
        if (strOrderStatus != "")
        {
            list.Add("OrderStatus='" + strOrderStatus + "'");
        }if (strOrderID != "")
        {
            list.Add("OrderID='" + strOrderID + "'");
        }
        if (strMallName != "")
        {
            list.Add("MallName='" + strMallName + "'");
        }
        if (strContacts != "")
        {
            list.Add("Contacts='" + strContacts + "'");
        }
        return list.ToArray();
    }

좋은 웹페이지 즐겨찾기