基于泛型的DAL 分页方法(未完)
来源:互联网 发布:网络隐私权的内涵包括 编辑:程序博客网 时间:2024/06/05 18:29
public delegate void ReadTableCallback<T>(System.Collections.Generic.IEnumerable<T> reader);
public interface IColumnInfo
{
string ColumnName
{
get;
}
string MappedName
{
get;
}
bool IsMappKey
{
get;
}
}
public class ReadTable<TTable>
{
public IColumnInfo this[TTable t]
{
get;
}
public string TableName
{
get;
}
public List<System.Data.SqlClient.SqlParameter> CreateParameters()
{
return new List<System.Data.SqlClient.SqlParameter>();
}
public TabFilterColumn<TTable> Filter
{
get
{
return new TabFilterColumn<TTable>(this);
}
}
public TabOrderColumn<TTable> Order
{
get { return new TabOrderColumn<TTable>(this); }
}
public TabSelectColumn<TTable> Select
{
get { return new TabSelectColumn<TTable>(this); }
}
public void Enum(ReadTableCallback<TTable> cb, TabSelectColumn<TTable> selectedColumns, TabFilterColumn<TTable> filterArgs,TabOrderColumn<TTable> orderColumns)
{
}
public enum RL
{
None,
And,
Or
}
public class TabOrderColumn<T>
{
internal TabOrderColumn(ReadTable<T> tab)
{
}
}
public class TabSelectColumn<T>
{
internal TabSelectColumn(ReadTable<T> tab)
{
}
}
public class TabFilterColumn<T>
{
protected TabFilterColumn<T> LeftNode;
protected TabFilterColumn<T> RightNode;
protected RL Relation;
protected ReadTable<T> pTable;
protected System.Data.SqlClient.SqlParameter[] para;
private int count = 0;
private string sqlExpres;
public string SqlExpress
{
get
{
return sqlExpres;
}
protected set
{
sqlExpres = value;
}
}
internal TabFilterColumn(ReadTable<T> tab)
{
pTable = tab;
Relation = RL.None;
}
public TabFilterColumn<T> Equal<V>(T t, V v)
{
TabFilterColumn<T> cx = new ReadTable<T>.TabFilterColumn<T>(pTable);
cx.sqlExpres = string.Format("{0}.{1}=@{1}{2}", pTable.TableName, pTable[t].ColumnName,count );
count++;
List<System.Data.SqlClient.SqlParameter> lst = pTable.CreateParameters();
lst.Add(new System.Data.SqlClient.SqlParameter(string.Format("@{0}0" , pTable[t].ColumnName), v));
cx.para = lst.ToArray();
return cx;
}
public TabFilterColumn<T> UnEqual<V>(T t, V v)
{
TabFilterColumn<T> cx = new ReadTable<T>.TabFilterColumn<T>(pTable);
cx.sqlExpres = string.Format("{0}.{1}=@{1}{2}", pTable.TableName, pTable[t].ColumnName,count );
count++;
List<System.Data.SqlClient.SqlParameter> lst = pTable.CreateParameters();
lst.Add(new System.Data.SqlClient.SqlParameter(string.Format("@{0}0", pTable[t].ColumnName), v));
cx.para = lst.ToArray();
return cx;
}
public static TabFilterColumn<T> operator &(TabFilterColumn<T> t1, TabFilterColumn<T> t2)
{
TabFilterColumn<T> x = new ReadTable<T>.TabFilterColumn<T>(t1.pTable);
x.LeftNode = t1;
x.RightNode = t2;
x.Relation = RL.And;
return x;
}
public static TabFilterColumn<T> operator |(TabFilterColumn<T> t1, TabFilterColumn<T> t2)
{
TabFilterColumn<T> x = new ReadTable<T>.TabFilterColumn<T>(t1.pTable);
x.LeftNode = t1;
x.RightNode = t2;
x.Relation = RL.Or;
return x;
}
}
}
- 基于泛型的DAL 分页方法(未完)
- DAL之基于mybatis的客户端
- 数据类型的转化方法(未完)
- 基于ajax的三层,实现数据库增删改查基础(一DAL)
- 基于HibernateDaoSupport的三个分页控制方法
- 重要方法(未完)
- 基于TCP协议的网络程序(未完)
- Dal:基于Mongodb和redis的Python持久库
- View 的一些方法 《未完》
- ASP.NET三层架构DAL层连接数据库的方法
- (未完)字符串模式匹配的几个方法
- 仙人掌相关问题的处理方法(未完待续)
- python 38一些图像处理的方法(未完待续)
- 我的分页控件(未完,待续)——控件件介绍及思路
- 我的分页控件(未完,待续)——控件件介绍及思路
- 对于分页视图里面修改数据,在DAL层提示存储区更新、插入和删除语句影响到了意外的行数(0)的原因
- 黑马程序员_精简三层架构DAL(构建两层架构(DAL,UI),密码MD5处理,“MD5加盐”,DAL某些方法)
- 通用分页方法及基于.net的应用
- 几种数据库中随机取数据的方法
- #pragma pack(4) 对齐的使用
- 谋划(12)
- Smart Client学习笔记(7) 使用多线程创建高响应智能客户端应用程序
- String and StringBuffer 详解
- 基于泛型的DAL 分页方法(未完)
- 谋划(13)
- 解决分页“奇怪”问题
- 数据库开发一
- JBPM源码分析(-)-----JbpmConfigurtion
- 谋划(14)
- 谋划(15)
- JAVA基础知识精华总结
- 寻找创业合作伙伴,重新设计SNS(附项目计划书)