惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Martin Fowler
Martin Fowler
WordPress大学
WordPress大学
月光博客
月光博客
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
大猫的无限游戏
大猫的无限游戏
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
博客园 - 聂微东
Apple Machine Learning Research
Apple Machine Learning Research
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
雷峰网
雷峰网
小众软件
小众软件
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 叶小钗
美团技术团队
宝玉的分享
宝玉的分享
Hugging Face - Blog
Hugging Face - Blog
阮一峰的网络日志
阮一峰的网络日志
A
About on SuperTechFans
Jina AI
Jina AI
D
Docker
Last Week in AI
Last Week in AI
MongoDB | Blog
MongoDB | Blog
Stack Overflow Blog
Stack Overflow Blog
Microsoft Azure Blog
Microsoft Azure Blog

博客园 - IT-民工

Sqlsever Kill locked process Linked Server Dependencies C# PDF添加水印 Excel Vlookup多条件查询 , 列转行 C# 编写ActiveX Microsoft.Office.Interop.Excel error: 80070005 SQLServer 查询 Excel ISO 纸张尺寸定义 检测SQLSERVER 连接 刷新SQLserver 视图 Sql Server 邮件日志 操作 常用连接 导出Excel Asp.net 多国语言-注意点 SqlServer 行列互转 SqlServer 备份数据库语法 SqlServer To SqlServer 建立 链接服务器 Linked Server sqlserver 根据内容,查询表和列名字 Sqlserver 2005 修改数据库默认排序
C# Linq 分页查询模板
IT-民工 · 2013-06-20 · via 博客园 - IT-民工

1. SQL

 private static string GetAllStocksSql(string branch, string itemNo, string locationName, string lotControl, bool blnAvail, bool blnCount)
        {
            StringBuilder sql = new StringBuilder();

            if (blnCount)
            {
                sql.Append(" SELECT  Count(*) ");
            }
            else
            {
                sql.Append(@"
                            SELECT  ROW_NUMBER() OVER(ORDER BY s.ReceivingTime  ) AS Seq,
                                s.Id ,s.Branch ,s.PDLITM ItemNo ,f.IMDSC1 + f.IMDSC2 [Description] , f.IMUOM1 UM ,  
                                l.Location LocationName ,  s.Qty Quantity ,  s.ReceivingTime ReceivingDate ,  s.LotControl LotControl   ");
            }
            sql.Append(@"   FROM    Stock s
                                LEFT JOIN Location l ON s.Location = l.Id
                                LEFT JOIN F4101 f ON s.PDLITM = f.IMLITM");

            sql.AppendFormat(@" where s.Branch like '%{0}%'  and s.PDLITM like '%{1}%' 
                                and l.Location like '%{2}%' ", branch, itemNo, locationName);
            if (!string.IsNullOrEmpty(lotControl))
            {
                sql.Append(" and s.LotControl like '%" + lotControl + "%'");
            }
            if (blnAvail)
            {
                sql.Append(" and s.Qty >0");//只显示可用库存            
            }
            return sql.ToString();

        }

2. 查询

  public static IList GetAllStocks(string branch, string itemNo, string locationName, string lotControl,bool blnAvail, int startIndex, int endIndex)
        {
            string detailSql = GetAllStocksSql(branch, itemNo, locationName, lotControl,blnAvail, false);

            string sql = @"
            SELECT * FROM 
            (
                {2}
             ) AS TB WHERE Seq>={0} AND Seq<=({1})
            "; 
            sql = string.Format(sql, startIndex, endIndex, detailSql);

            return  WmsDataContext.Instance.ExecuteQuery<StocksTemp>(sql).ToList();
            
        }

3. 总量

public static int GetStocksCount(string branch, string itemNo, string locationName, string lotControl, bool blnAvail)
        {
            
            string sql = GetAllStocksSql(branch, itemNo, locationName, lotControl, blnAvail,true);
            return WmsDataContext.Instance.ExecuteQuery<int>(sql).FirstOrDefault();
        }