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 算力,解读结果公开显示在下面。
还没有人解读过这个文件。
