博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
利用反射生成SQL语句
阅读量:6642 次
发布时间:2019-06-25

本文共 1248 字,大约阅读时间需要 4 分钟。

// 修改学员信息的方法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
paras = new List
(); 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 + "=@" + pi.Name + ",");//SID=@SID     // 增加参数到List
里     paras.Add(new SqlParameter("@" + pi.Name, pi.GetValue(model, null)));   }   } } // 去掉最后一个 , 豆号 string strSql = sbSql.ToString().Trim(','); strSql += " where SID=@SID"; // 记得加上主键 paras.Add(new SqlParameter("@SID", model.SID)); return dbHelper.ExecuteCommand(strSql, paras.ToArray()) > 0; // 最终sbSql生成的SQL为:update Students set Name=@Name,Age=@Age,Clazz=@Clazz where SID=@SID}
posted on
2017-05-11 21:01 阅读(
...) 评论(
...)

转载于:https://www.cnblogs.com/yezuhui/p/6842754.html

你可能感兴趣的文章
安装 Ubuntu 14.04 之后要做的一些事
查看>>
[WC2011]最大XOR和路径
查看>>
js----jsonp跨域
查看>>
电子墨水技术进入中国智能手机
查看>>
3.7 批量导入来源准则
查看>>
RIP协议
查看>>
php 读取windows 的系统版本,硬盘,内存,网卡,数据流量等
查看>>
Python数据类型(简单入门)
查看>>
Windows下搭建PHP开发环境
查看>>
[转] 彼得林奇:最珍贵的成长股投资精髓
查看>>
模块测试
查看>>
多屏移动端网站开发需要注意的十大技巧
查看>>
ORA-12516: TNS: 监听程序找不到符合协议堆栈要求的可用处理程”的异常
查看>>
《编码的奥秘》笔记
查看>>
shell编程(1)
查看>>
JS alert()、confirm()、prompt()的区别
查看>>
struts2获取request、session、application的四种方式
查看>>
团队作业需求分析
查看>>
20155222 2016-2017-2 《Java程序设计》第7周学习总结
查看>>
冗余路径Redundant Paths
查看>>