Hidistro.Core/DataHelper.cs

(开头部分) 12KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

namespace Hidistro.Core
{
    using Hidistro.Core.Entities;
    using Hidistro.Core.Enums;
    using Microsoft.Practices.EnterpriseLibrary.Data;
    using System;
    using System.Data;
    using System.Data.Common;
    using System.Globalization;
    using System.Text;
    using System.Text.RegularExpressions;

    public static class DataHelper
    {
        public static string BuildNotinQuery(int pageIndex, int pageSize, string sortBy, SortAction sortOrder, bool isCount, string table, string key, string filter, string selectFields)
        {
            string str = string.IsNullOrEmpty(filter) ? "" : ("WHERE " + filter);
            string str2 = string.IsNullOrEmpty(filter) ? "" : ("AND " + filter);
            string str3 = string.IsNullOrEmpty(sortBy) ? "" : ("ORDER BY " + sortBy + " " + sortOrder.ToString());
            StringBuilder builder = new StringBuilder();
            builder.AppendFormat("SELECT TOP {0} {1} FROM {2} ", pageSize.ToString(CultureInfo.InvariantCulture), selectFields, table);
            if (pageIndex == 1)
            {
                builder.AppendFormat("{0} {1}", str, str3);
            }
            else
            {
                int num = (pageIndex - 1) * pageSize;
                builder.AppendFormat("WHERE {0} NOT IN (SELECT TOP {1} {0} FROM {2} {3} {4}) {5} {4}", new object[] { key, num, table, str, str3, str2 });
            }
            if (isCount)
            {
                builder.AppendFormat(";SELECT COUNT({0}) FROM {1} {2}", key, table, str);
            }
            return builder.ToString();
        }

        private static string BuildRownumberQuery(string sortBy, SortAction sortOrder, bool isCount, string table, string pk, string filter, string selectFields, int partitionSize)
        {
            StringBuilder builder = new StringBuilder();
            string str = string.IsNullOrEmpty(filter) ? "" : ("WHERE " + filter);
            if (partitionSize > 0)
            {
                builder.AppendFormat("SELECT TOP {0} {1}, ROW_NUMBER() OVER (ORDER BY ", partitionSize.ToString(CultureInfo.InvariantCulture), selectFields);
            }
            else
            {
                builder.AppendFormat("SELECT {0} , ROW_NUMBER() OVER (ORDER BY ", selectFields);
            }
            builder.AppendFormat("{0} {1}", string.IsNullOrEmpty(sortBy) ? pk : sortBy, sortOrder.ToString());
            builder.AppendFormat(") AS RowNumber FROM {0} {1}", table, str);
            builder.Insert(0, "SELECT * FROM (").Append(") T WHERE T.RowNumber BETWEEN @StartNumber AND @EndNumber");
            string str2 = "";
            if (!string.IsNullOrEmpty(sortBy))
            {
                if (sortBy.IndexOf(",") > 0)
                {
                    str2 = sortBy.Substring(0, sortBy.IndexOf(","));
                }
                else
后面还有 217 行代码,购买后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。