日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

多条件组合查询+分页

發布時間:2023/11/27 生活经验 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 多条件组合查询+分页 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
比較麻煩,把他記錄下來。

前臺UI:





實現的類代碼:

程序代碼

///?<summary>
????????///?多條件組合查詢
????????///?</summary>
????????///?<param?name="suppliercode">供應商代碼</param>
????????///?<param?name="materialcode">物料代碼</param>
????????///?<param?name="beginDate">合同有效日期搜索開始日期</param>
????????///?<param?name="endDate">合同有效日期搜索結束日期</param>
????????///?<param?name="companyType">廠別</param>
????????///?<param?name="formState">狀態</param>
????????///?<param?name="POCT">POCT</param>
????????///?<param?name="orderField">排序字段</param>
????????///?<returns></returns>
????????public?IList<Entity.CAS.PriceFormInfo>?MultiSearch(string?suppliercode,?string?materialcode,?string?beginDate,?string?endDate,?string?companyType,?string?formState,?string?POCT,?string?orderField,?int?pagesize,?int?pageindex)
????????{
????????????SqlParameter[]?Parms?=
???????????????{
???????????????????new?SqlParameter("@tblName",SqlDbType.VarChar,255),
???????????????????new?SqlParameter("@strGetFields",SqlDbType.VarChar,1000),
???????????????????new?SqlParameter("@fldName",SqlDbType.VarChar,255),
???????????????????new?SqlParameter("@PageSize",SqlDbType.Int,4),
???????????????????new?SqlParameter("@PageIndex",SqlDbType.Int,4),
???????????????????new?SqlParameter("@doCount",SqlDbType.Int,4),
???????????????????new?SqlParameter("@OrderType",SqlDbType.Int,4),
???????????????????new?SqlParameter("@strWhere",SqlDbType.VarChar,1500),
???????????????};


????????????Parms[0].Value?=?"UBS_CAS_PriceForm";
????????????Parms[1].Value?=?"*";
????????????Parms[2].Value?=?"FormID";
????????????Parms[3].Value?=?pagesize;
????????????Parms[4].Value?=?pageindex;
????????????Parms[5].Value?=?0;
????????????Parms[6].Value?=?1;



????????????string?sql_select="1=1";
???????????
???????????????

????????????if(!string.IsNullOrEmpty(suppliercode))
????????????{
????????????????sql_select+="and?suppliercode='"+suppliercode.ToString()+"'";
????????????}
????????????if(!string.IsNullOrEmpty(materialcode))
????????????{
????????????????sql_select+="?and?materialcode='"+materialcode.ToString()+"'";
????????????}
????????????if?(!string.IsNullOrEmpty(companyType.ToString()))
????????????{
????????????????sql_select?+=?"?and?companytype="?+?companyType.ToString();
????????????}
????????????if(!string.IsNullOrEmpty(POCT))
????????????{
?????????????????sql_select+="?and?POCT='"+POCT.ToString()?+"'";
????????????}
????????????if(!string.IsNullOrEmpty(formState.ToString()))
????????????{
?????????????????sql_select+="?and?formState="+formState.ToString()?;
????????????}
????????????if(!string.IsNullOrEmpty(beginDate.ToString())?&&?!string.IsNullOrEmpty(endDate.ToString()))
????????????{
????????????????sql_select+=?"??And?[EffectiveDate]?>='"?+?beginDate.ToString()?+?"'?And?[EffectiveDate]<=?'"?+?endDate.ToString()?+?"?'";
????????????}
????????????
????????????
????????????Parms[7].Value?=?sql_select;
???

????????????//Parms[7].Value?=?"1=1?and?suppliercode?is?null?or?suppliercode='"?+?suppliercode.ToString().Trim()?+?"'?and?materialcode?is?null?or?materialcode='"?+?materialcode.ToString()?+?"'?AND?companytype?is?null?or?CompanyType="?+?companyType.ToString()?+?"?AND?POCT?is?null?or?POCT='"?+?POCT.ToString()?+?"'?AND?EffectiveDate?between???'"?+?beginDate.ToString()?+?"'?AND??'"?+?endDate.ToString()?+?"'";

??
??

????????????IList<Entity.CAS.PriceFormInfo>?FormList?=?new?List<Entity.CAS.PriceFormInfo>();

????????????using?(SqlDataReader?dr?=?SqlHelper.ExecuteReader(SqlHelper.ConnectionStringProfile,?CommandType.StoredProcedure,?"UBS_System_Page",?Parms))
????????????{
????????????????while?(dr.Read())
????????????????{
????????????????????Entity.CAS.PriceFormInfo?priceForm?=?new?Entity.CAS.PriceFormInfo(Convert.ToInt32(dr["formID"]),?dr["materialCode"].ToString().Trim(),?dr["materialDesc"].ToString().Trim(),?dr["supplierCode"].ToString().Trim(),?dr["supplierName"].ToString().Trim(),?dr["payment"].ToString().Trim(),?Convert.ToDouble(dr["tax"]),?dr["currencyType"].ToString().Trim(),?Convert.ToDateTime(dr["effectiveDate"]),?dr["processMarDealWay"].ToString().Trim(),?dr["productMarDealWay"].ToString().Trim(),?dr["guaranDealWay"].ToString().Trim(),?dr["idelDealWay"].ToString().Trim(),?Convert.ToInt32(dr["companyType"]),?dr["purchaser"].ToString().Trim(),?Convert.ToInt32(dr["purchaserUID"]),?dr["auditor"].ToString().Trim(),?Convert.ToInt32(dr["auditorUID"]),?dr["description"].ToString().Trim(),?Convert.ToDateTime(dr["pubDate"]),?Convert.ToInt32(dr["formState"]),?dr["rejectReason"].ToString().Trim(),?Convert.ToInt32(dr["itemCostModelID"]),?Convert.ToDouble(dr["price"]),?Convert.ToDateTime(dr["checkedDate"]),?Convert.ToDouble(dr["profits"]),?Convert.ToDouble(dr["totalTaxPercent"]),?Convert.ToDouble(dr["processMarTax"]),?Convert.ToDouble(dr["productMarTax"]),?Convert.ToDouble(dr["guaranTax"]),?Convert.ToInt32(dr["IsCurrentPrice"]),?Convert.ToInt32(dr["FormType"]),?dr["POCT"].ToString().Trim(),?Convert.ToInt32(dr["MaterialClass"]),?dr["Checker"].ToString().Trim(),?Convert.ToInt32(dr["CheckerUID"]),?Convert.ToInt32(dr["IsBatch"]),?dr["AttributePath"].ToString().Trim(),?dr["BatchNo"].ToString().Trim());

????????????????????FormList.Add(priceForm);
????????????????}

????????????}
????????????return?FormList;
????????}







存儲過程實現代碼:(這個可以通用,在SQL或Access都可以用的)


程序代碼

--?=============================================
--?Author:Dezai??www.Dezai.cn
--?Create?date:2008-06-04?11:19:52
--?Description:查詢分頁集合(通用存儲過程)
--?=============================================
Create?PROCEDURE?UP_GetCollectionPage
????(
????????@tblName?VARCHAR(255),?--?表名
????????@strGetFields?VARCHAR(1000)?=?'*',?--?需要返回的列
????????@fldName?VARCHAR(255)='',?--?排序的字段名
????????@PageSize?INT?=?10,?--?頁尺寸
????????@PageIndex?INT?=?1,?--?頁碼
????????@doCount?BIT?=?0,?--?返回記錄總數,?非?0?值則返回
????????@OrderType?BIT?=?0,?--?設置排序類型,?非?0?值則降序
????????@strWhere?VARCHAR(1500)?=?''?--?查詢條件?(注意:?不要加?Where)
????)
AS

????SET?NOCOUNT?ON

????????DECLARE?@strSQL?VARCHAR(5000)?--?主語句
????????DECLARE?@strTmp?VARCHAR(110)?--?臨時變量
????????DECLARE?@strOrder?VARCHAR(400)?--?排序類型


????????IF(@doCount?!=?0)
????????????BEGIN
????????????????IF?@strWhere?!=''
????????????????????SET?@strSQL?=?'Select?COUNT(1)?AS?Total?FROM?['?+?@tblName?+?']?Where?'+@strWhere
????????????????ELSE
????????????????????SET?@strSQL?=?'Select?COUNT(1)?AS?Total?FROM?['?+?@tblName?+?']'
????????????END
????????????--以上代碼的意思是如果@doCount傳遞過來的不是0,就執行總數統計。以下的所有代碼都是@doCount為0的情況
????????ELSE
????????????BEGIN
????????????????IF?@OrderType?!=?0
????????????????????BEGIN
????????????????????????SET?@strTmp?=?'<(Select?MIN'
????????????????????????SET?@strOrder?=?'?orDER?BY?['?+?@fldName?+']?DESC'
????????????????????????--如果@OrderType不是0,就執行降序,這句很重要
????????????????????END
????????????????ELSE
????????????????????BEGIN
????????????????????????SET?@strTmp?=?'>(Select?MAX'
????????????????????????SET?@strOrder?=?'?orDER?BY?['?+?@fldName?+']?ASC'
????????????????????END

????????????????IF?@PageIndex?=?1
????????????????????BEGIN
????????????????????????IF?@strWhere?!=?''
????????????????????????????SET?@strSQL?=?'Select?TOP?'?+?str(@PageSize)?+'?'+@strGetFields+?'?FROM?['?+?@tblName?+?']?Where?'?+?@strWhere?+?'?'?+?@strOrder
????????????????????????ELSE
????????????????????????????SET?@strSQL?=?'Select?TOP?'?+?str(@PageSize)?+'?'+@strGetFields+?'?FROM?['+?@tblName?+?']?'+?@strOrder
????????????????????????--如果是第一頁就執行以上代碼,這樣會加快執行速度
????????????????????END
????????????????ELSE
????????????????????BEGIN
????????????????????????--以下代碼賦予了@strSQL以真正執行的SQL代碼
????????????????????????SET?@strSQL?=?'Select?TOP?'?+?str(@PageSize)?+'?'+@strGetFields+?'?FROM?['
????????????????????????+?@tblName?+?']?Where?['?+?@fldName?+?']'?+?@strTmp?+?'(['+?@fldName?+?'])?FROM?(Select?TOP?'?+?str((@PageIndex-1)*@PageSize)?+?'?['+?@fldName?+?']?FROM?['?+?@tblName?+?']'?+?@strOrder?+?')?AS?tblTmp)'+?@strOrder
????????????????????????IF?@strWhere?!=?''
????????????????????????SET?@strSQL?=?'Select?TOP?'?+?str(@PageSize)?+'?'+@strGetFields+?'?FROM?['
????????????????????????+?@tblName?+?']?Where?['?+?@fldName?+?']'?+?@strTmp?+?'(['
????????????????????????+?@fldName?+?'])?FROM?(Select?TOP?'?+?str((@PageIndex-1)*@PageSize)?+?'?['
????????????????????????+?@fldName?+?']?FROM?['?+?@tblName?+?']?Where?'?+?@strWhere?+?'?'
????????????????????????+?@strOrder?+?')?AS?tblTmp)?AND?'?+?@strWhere?+?'?'?+?@strOrder
????????????????????END
????????????END

????????EXEC?(@strSQL)

????SET?NOCOUNT?OFF
GO





記錄一下,與大家分享,歡迎糾錯。

來源:http://www.dezai.cn/blog/article.asp?id=199

轉載于:https://www.cnblogs.com/eastjazz/archive/2008/06/05/1214254.html

總結

以上是生活随笔為你收集整理的多条件组合查询+分页的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。