利用反射生成SQL语句
Posted 叶祖辉
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了利用反射生成SQL语句相关的知识,希望对你有一定的参考价值。
// 修改学员信息的方法 public bool ModifyStudent(MODEL.Students model) { // 利用反映获取类对所有属性,用来动态生成SQL语句 StringBuilder sbSql = new StringBuilder("update Students set "); // 先获得model 的Type类型 Type modeType = model.GetType(); // 通过Type类型得到它所有的公开属性 PropertyInfo[] pros = modeType.GetProperties(); List<SqlParameter> paras = new List<SqlParameter>(); foreach (PropertyInfo pi in pros) { // 如果不是主键则追加sql字符串 if (!pi.Name.Equals("SID")) { // 判断属性值是否为空 f (pi.GetValue(model, null) != null && !pi.GetValue(model, null).ToString().Equals("")) { sbSql.Append(pi.Name + "[email protected]" + pi.Name + ",");//[email protected] // 增加参数到List<SqlParameter>里 paras.Add(new SqlParameter("@" + pi.Name, pi.GetValue(model, null))); } } } // 去掉最后一个 , 豆号 string strSql = sbSql.ToString().Trim(‘,‘); strSql += " where [email protected]"; // 记得加上主键 paras.Add(new SqlParameter("@SID", model.SID)); return dbHelper.ExecuteCommand(strSql, paras.ToArray()) > 0; // 最终sbSql生成的SQL为:update Students set [email protected],[email protected],[email protected] where [email protected] }
以上是关于利用反射生成SQL语句的主要内容,如果未能解决你的问题,请参考以下文章