using System;
using System.Data;
namespace cosvote
{
/// <summary>
/// page_size_ct 的摘要说明。
/// </summary>
public class page_size_ct
{
public page_size_ct()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
int page_size;//页尺寸
int orderby_tag;//排序方式(0为asc,1为desc)
string tb_name; //表名
string field_list; //字段列表
int page_no=0;//页码
string condition_str;//条件字段串(不加where)
string primary_key;// 主键(必须而且要自动编号无重复)
public int pagesize //pagesize 属性
{
set
{
page_size=value;
}
get
{
return(page_size);
}
}
public int orderbytag //排序标志 属性(0为正序1为倒序)
{
set
{
orderby_tag=value;
}
get
{
return(orderby_tag);
}
}
public string tbname //表名 属性
{
set
{
tb_name=value;
}
get
{
return(tb_name);
}
}
public string fieldlist //字段列表 属性
{
set
{
field_list=value;
}
get
{
return(field_list);
}
}
public int pageno //页码 属性
{
set
{
if (value!=0)
{
page_no=value;
}
else
page_no=1;
}
get
{
return(page_no);
}
}
public string condition //条件 属性
{
set
{
condition_str=value;
}
get
{
return(condition_str);
}
}
public string primarykey //关键字 属性
{
set
{
primary_key=value;
}
get
{
return(primary_key);
}
}
//组合查询语句
public System.Data.DataTable page_tb()
{
string condition_tag; //存放按最大ID或最小ID查询
string orderbystr; //存放orderby字符串
string strsql; //组合后的查询字符串
if (this.orderbytag==0)
{
condition_tag=" > (select max("+ this.primarykey +") from ( select top ";
orderbystr=" order by "+ this.primarykey + " asc ";
}
else
{
condition_tag=" < ( select min("+ this.primarykey +") from (select top ";
orderbystr=" order by "+ this.primarykey +" desc ";
}
if (this.pageno==1)
{
if (this.condition=="")
{
strsql="Select top "+ this.pagesize +" " + this.fieldlist + " from "+ this.tbname + orderbystr;
}
else
{
strsql="Select top "+ this.pagesize +" " + this.fieldlist + " from "+ this.tbname ;
strsql+=" where "+ this.condition + orderbystr;
}
}
else
{
if (this.condition=="")
{
strsql="Select top "+ this.pagesize +" " + this.fieldlist + " from "+ this.tbname ;
strsql+=" where "+ this.primarykey + condition_tag +((this.pageno -1)*this.pagesize) + " "+this.primarykey +" from " + this.tbname;
strsql+= orderbystr+ ") as maxid )" + orderbystr;
}
else
{
strsql="Select top "+ this.pagesize +" " + this.fieldlist + " from "+ this.tbname ;
strsql+=" where ( "+ this.primarykey + condition_tag +((this.pageno -1)*this.pagesize) + " "+ this.primarykey +" from " + this.tbname;
strsql+=" where "+ this.condition +" " + orderbystr+ ") as maxid )" + " ) and ( " +this.condition + " )"+orderbystr;
}
}
getconnect conn=new getconnect();
conn.openconn();
DataSet ds=new DataSet();
try
{
System.Data.SqlClient.SqlDataAdapter adp=new System.Data.SqlClient.SqlDataAdapter(strsql,conn.conn);
adp.Fill(ds);
return(ds.Tables[0]);
}
catch (Exception e)
{
System.Web.HttpContext.Current.Response.Write (e.Message);
conn.closeconn();
return(new DataTable());
}
finally
{
conn.closeconn();
}
}
//返回总行数
public long recordcount()
{
string strsql;
if (this.condition.ToString()!="")
{
strsql="Select Count(" + this.primarykey +") as counts from "+ this.tbname + " where " + this.condition.ToString() ;
}
else
{
strsql="Select Count(" + this.primarykey +") as counts from "+ this.tbname ;
}
getconnect conn=new getconnect();
conn.openconn();
System.Data.SqlClient.SqlCommand cmd=new System.Data.SqlClient.SqlCommand();
cmd.CommandText=strsql;
cmd.Connection=conn.conn;
System.Data.SqlClient.SqlDataReader rd;
try
{
rd= cmd.ExecuteReader();
if (rd.HasRows==true)
{
rd.Read();
return(long.Parse(rd["counts"].ToString()));
}
else
{
return(0);
}
}
catch (Exception e)
{
System.Web.HttpContext.Current.Response.Write (e.Message);
conn.closeconn();
cmd.Dispose();
return(0);
}
finally
{
conn.closeconn();
}
}
}
}