asp.net Repeater之非常好的数据分页

2019-05-11 21:49:00于海丽

@Where2=@Where2+N' AND b.'+@Field+N' IS NULL',
@Where=REPLACE(@Where,@Field,N'a.'+@Field),
@FieldOrder=REPLACE(@FieldOrder,@Field,N'a.'+@Field),
@FieldShow=REPLACE(@FieldShow,@Field,N'a.'+@Field)
end
else
begin
SELECT @Field=@s,
@s=STUFF(@s,1,CHARINDEX(N',',@s),N''),
@Where1=@Where1+N' AND a.'+@Field+N'=b.'+@Field,
@Where2=@Where2+N' AND b.'+@Field+N' IS NULL',
@Where=REPLACE(@Where,@Field,N'a.'+@Field),
@FieldOrder=REPLACE(@FieldOrder,@Field,N'a.'+@Field),
@FieldShow=REPLACE(@FieldShow,@Field,N'a.'+@Field)
end


SELECT @Where=REPLACE(@Where,@s,N'a.'+@s),
@FieldOrder=REPLACE(@FieldOrder,@s,N'a.'+@s),
@FieldShow=REPLACE(@FieldShow,@s,N'a.'+@s),
@Where1=STUFF(@Where1+N' AND a.'+@s+N'=b.'+@s,1,5,N''),
@Where2=CASE
WHEN @Where='' THEN N'WHERE ('
ELSE @Where+N' AND ('
END+N'b.'+@s+N' IS NULL'+@Where2+N')'

--执行查询
EXEC(N'SELECT TOP '+@TopN
+N' '+@FieldShow
+N' FROM '+@tbname
+N' a LEFT JOIN(SELECT TOP '+@TopN1
+N' '+@FieldKey
+N' FROM '+@tbname
+N' a '+@Where
+N' '+@FieldOrder
+N')b ON '+@Where1
+N' '+@Where2
+N' '+@FieldOrder)
END

GO


调用的数据库底层代码:

using System;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Collections;
using System.Collections.Generic;
using System.Xml;
using System.Text;
using System.Data.Common;
using System.Text.RegularExpressions;
using System.Reflection;
using System.IO;

namespace Sql_Function
{
/// <summary>
/// 数据处理底层 数据基本操作
/// </summary>
public class SqlDb
{
#region 数据库公用连接字符串

public static readonly string ConnectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ToString();

#endregion

#region 数据库操作方法 连接和关闭对象

/// <summary>
/// 打开数据库连接
/// </summary>
/// <returns></returns>
public static SqlConnection OpenDataBase()
{
SqlConnection conn = new SqlConnection(ConnectionString);

try
{
conn.Open();

return conn;
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}

/// <summary>
/// 关闭数据库连接
/// </summary>
/// <param name="conn"></param>
public static void CloseDataBase(SqlConnection conn)
{
try
{
if (conn != null)
{
conn.Close();

conn.Dispose();
}
}
catch (Exception ex)
{
conn.Close();

conn.Dispose();

throw new Exception(ex.Message);
//throw new ArgumentNullException("connection");
}
finally
{
conn.Close();
}
}

#endregion

#region 数据库返回DataTable

/// <summary>
/// 返回指定Sql语句的返回DataTable
/// </summary>