public string GetInsertSqlByModel(Object o)
{
StringBuilder sbStart = new StringBuilder();
StringBuilder sbFields = new StringBuilder();
StringBuilder sbValues = new StringBuilder();
Type t = o.GetType();
string modelName = t.Name;
foreach (PropertyInfo p in t.GetProperties())
{
sbFields.Append(p.Name + ",");
sbValues.AppendFormat("'{0}',",p.GetValue(o));
}
sbStart.AppendFormat("insert into {0}({1}) values({2})",modelName,sbFields.ToString().TrimEnd(','), sbValues.ToString().TrimEnd(','));
return sbStart.ToString();
}

如果不需要添加为null或者为空的栏位,则可以使用如下代码

public string GetInsertSqlByModel(Object o)
{
StringBuilder sbStart = new StringBuilder();
StringBuilder sbFields = new StringBuilder();
StringBuilder sbValues = new StringBuilder();
Type t = o.GetType();
string modelName = t.Name;
foreach (PropertyInfo p in t.GetProperties())
{
if (p.GetValue(o) == null||string.IsNullOrEmpty(p.GetValue(o).ToString()))
{
continue;
}
sbFields.Append(p.Name + ",");
sbValues.AppendFormat("'{0}',",p.GetValue(o));
}
sbStart.AppendFormat("insert into {0}({1}) values({2})",modelName,sbFields.ToString().TrimEnd(','), sbValues.ToString().TrimEnd(','));
return sbStart.ToString();
}
}

源文:

http://www.cnblogs.com/xuhongfei/p/7491108.html

Model实例化类属性与值使用反射拼接成SQL语句的更多相关文章

  1. python 四种方法修改类变量,实例对象调用类方法改变类属性的值,类对象调用类方法改变类属性的值,调用实例方法改变类属性的值,直接修改类属性的值

    三种方法修改类变量,实例对象调用类方法改变类属性的值,类对象调用类方法改变类属性的值,调用实例方法改变类属性的值,类名就是类对象,city就是类变量, #coding=utf-8 class empl ...

  2. 存储过程往拼接的sql语句中传递日期值

    存储过程往拼接的sql语句中传递日期值 declare @start datetime declare @end datetime set @start='2014-3-1' set @end='20 ...

  3. C#反射生成简单sql语句

    static void Main(string[] args) { book book = new book();//实体类 booktest b1 = new booktest(); book.bo ...

  4. 利用反射自动生成SQL语句(仿Linq)

    转:http://www.cnblogs.com/the7stroke/archive/2012/04/22/2465597.html using System; using System.Colle ...

  5. 利用反射动态构成sql语句

    class Program     {         static void Main(string[] args)         {             People p = new Peo ...

  6. java反射获取注解并拼接sql语句

    先建两个注解 分别为 Table 和 Column package com.hk.test; import java.lang.annotation.ElementType; import java. ...

  7. 在.Net MVC中自定义ValidationAttribute标签对Model中的属性做验证

    写一个继承与ValidationAttribute类的自定义的验证方法 MVC中传递数据时,大多数都会用Model承载数据,并且在传到控制器后,对Model进行一系列的验证. 我平时经常使用的判断方法 ...

  8. python面向对象学习(六)类属性、类方法、静态方法

    目录 1. 类的结构 1.1 术语 -- 实例 1.2 类是一个特殊的对象 2. 类属性和实例属性 2.1 概念和使用 2.2 属性的获取机制 3. 类方法和静态方法 3.1 类方法 3.2 静态方法 ...

  9. python类属性和类方法(类的结构、实例属性、静态方法)

    类属性和类方法 目标 类的结构 类属性和实例属性 类方法和静态方法 01. 类的结构 1.1 术语 —— 实例 使用面相对象开发,第 1 步 是设计 类 使用 类名() 创建对象,创建对象 的动作有两 ...

随机推荐

  1. [Javascript] Closure Cove, Common mistake

    They’ve got a problem with their existing code, which tries to use a closure. Check it out: function ...

  2. CentOS6.3 安装配置 ant

    OS:CentOS6.3 ant版本:apache-ant-1.9.2-bin 第1步:下载ant apache-ant-1.9.2-bin.tar.gz 第2步:解压 tar -zxvf apach ...

  3. 免费的HTML模板引导 - lonely

    ​在线演示 本地下载 今天和大家分享另一款模板-Lonely.它可以被用在一些个人或者类似简单一些的网站上,动画效果的滚动非常特别!

  4. 在自己的服务器上部署 GitLab 社区版

    GitLab 简介 因为我的个人网站 restran.net 已经启用,博客园的内容已经不再更新.这篇文章是在 Gitlab 7.4 的环境下配置的,相关内容可能已经过时. 后续做了一次迁移,将 Gi ...

  5. Centos6.6系统root用户密码恢复案例(转)

    原文:http://www.centoscn.com/CentOS/Intermediate/2015/0131/4604.html 通过单用户模式恢复root用户密码 重新启动主机后,在出现Grub ...

  6. windows命令:control命令

    Windows的命令列模式下有个非常好用的命令叫做Control.这个命令其实就是控制『控制台』的一个接口.你可以用这个命令直接叫起一些平常要找很久才会找到的窗口.最简单的一个例子,你只要在『开始』 ...

  7. JSON path

    https://github.com/itguang/gitbook-smile/blob/master/springboot-fastjson/fastjson%E4%B9%8BJSONPath%E ...

  8. Tomcat跨二级域配置

    内容转自:http://blog.csdn.net/luka2008/article/details/38385703/,请直接看原文,不过这篇“原文”也是转的... 1,Tomcat下 代码: im ...

  9. PmExceptionController

    package main.java.com.zte.controller.system; import java.util.ArrayList; import java.util.List; impo ...

  10. 在ListView的右边添加字母列表

    在ListView的右边添加字母列表,点击某个字母时,列表就滚动到预期位置. <!-- 数字和字母栏在标题栏下边并且停靠在右边 --> <com.txrj.sms.component ...