命名空间:netMarketing.database
功能:EntityHelper类和SQLServerClient类,数据库表实体类操作的类
版本要求:netMarketing1.3.1
功能详细说明:
这个类用于SQL Server数据表的操作。它通过表对应的实体类来操作表。
勇哥谈谈实体类操作表的方式是怎么样的?有什么好处?
下图中是数据库中的表。
下图是实体类生成工具,生成的类“柔性撕膜机”,它是一个实体类。
使用下面的代码,则返回结果res中是一个List<柔性撕膜机>的查询结果。
SQLServerClient client = new SQLServerClient(); var res= client.readTable<柔性撕膜机>("select * from dbo.柔性撕膜机");
实际上,client.readTable的实现是下面代码所示:
它使用了类EntityHelper的方法GetEntityListByDT<T>,它是一个范型,你可以传入需要的实体类。
public List<T> readTable<T>(string sql) { cmd.CommandText = sql; set.Tables.Clear(); myDataAdapter.Fill(set); if (set.Tables[0].Rows.Count > 0) { var row = set.Tables[0]; var res = EntityHelper.GetEntityListByDT<T>(row, null); return res; } return null; }
常用函数列表:
//类SQLServerClient的成员 //构造,conn为传入的数据库连接字符串 public SQLServerClient(string conn) //读数据表,返回数据表对应的实体类结果 public List<T> readTable<T>(string sql) /// 连接数据库 public bool ConnectLib() /// 关闭数据库 public bool CloseLib() //类EntityHelper的成员 /// 判断DataSet默认表是否为空:true:不为空 false:为空。 public static bool CheckDataSet(DataSet ds) /// 判断DataSet指定索引表是否为空:true:不为空 false:为空。 public static bool CheckDataSet(DataSet ds, int tableIndex) /// 根据数据表生成相应的实体对象列表 public static List<T> GetEntityListByDT<T>(DataTable srcDT, Hashtable relation) /// 将SqlDataReader转换成数据实体 public static T GetEntityListByDT<T>(SqlDataReader dr) /// 将数据行转换成数据实体 public static T GetEntityListByDT<T>(DataSet ds) /// 将数据行转换成数据实体 public static T GetEntityListByDT<T>(DataRow row, Hashtable relation) /// 将多数据行转换成数据实体列表 public static List<T> GetEntityListByDT<T>(DataRow[] rows, Hashtable relation) /// 为对象的属性赋值 private static void SetPropertyValue(PropertyInfo prop, object destObj, object value) /// 用于类型数据的赋值 private static object ChangeType(Type type, object value)
有了EntityHelper类的辅助,可以极大的方便操作数据库的表。是一个十分有用常类。
---------------------
作者:hackpig
来源:www.skcircle.com
版权声明:本文为博主原创文章,转载请附上博文链接!

