标签:
这次通过反射技术来实现一下数据库表的增删改查对象关系映射(英语:Object Relational Mapping,简称ORM,或O/RM,或O/R mapping)
注:引用时约束了以下几点:
注:如果用的是MySql数据库,有提供好的MySqlhelper非MySql数据库可以参考我写好的SqlHelper
SqlHelper参考位置:http://www.cnblogs.com/fengxuehuanlin/p/5271944.html
1.数据插入封装:
/// <summary> /// 完成数据的插入 /// 要求:1.数据库表名为类名 /// 2.数据库字段名和类字段名相同 /// 3.自增字段设置为private /// </summary> /// <param name="obj"></param> public static void Insert(object obj) { StringBuilder Sql =new StringBuilder (); Type type = obj.GetType(); FieldInfo[] fields = type.GetFields();//获取类中所有字段信息,(表中的所有字段) string[] keys = new string[fields.Length];//存取字段信息 string[] param = new string[fields.Length];//存储参数化查询的参数 string[] values = new string[fields.Length];//每个字段对应的值 MySqlParameter[] sqlParameter = new MySqlParameter[fields.Length]; //参数化查询 string table=type.Name; //获取类名(表中的表名) for (int i = 0; i < fields.Length; i++) { keys[i] = (fields[i].Name).ToString(); //字段名 param[i] = "@" + (fields[i].GetValue(obj)).ToString(); //参数名 values[i] = (fields[i].GetValue(obj)).ToString(); //字段值 MySqlParameter sqlparam = new MySqlParameter();//进行参数化查询 sqlparam.ParameterName = param[i]; //参数化查询用于替换的名字 sqlparam.Value = values[i]; //对应的值 sqlParameter[i] = sqlparam; } string sqlkey = string.Join(",",keys); //将字段数组转换为字符串 string sqlparamstr = string.Join(",", param); //将参数数组转换字符串 Sql.Append("insert into " + table + " (" + sqlkey + ") values (" + sqlparamstr + ")"); SqlHelper.ExecuteNonQuery(Sql.ToString(), sqlParameter); //通过SqlHelper完成操作 }
2.数据删除封装:
未完:待补充......
3.数据更新封装:
未完:待补充.......
4.数据查询封装:
未完:待补充.......
标签:
原文地址:http://www.cnblogs.com/fengxuehuanlin/p/5335116.html