public static int Reg(Model ml)
{
bool b = true;
Visit vt = new Visit();
StringBuilder builder = new StringBuilder("insert into UsersTable (");
Type type = ml.GetType();
PropertyInfo[] per = type.GetProperties();
List<SqlParameter> sqlpar = new List<SqlParameter>();
for (int i = ; i < per.Length; i++)
{
if (!per[i].Name.Equals("Uid") ||!string.IsNullOrEmpty(per[i].GetValue(ml, null).ToString()))
{
if (i == per.Length - )
{
if (b == true)
{
builder.Append(per[i].Name + ")values(");
sqlpar.Add(new SqlParameter("@" + per[i].Name, per[i].GetValue(ml, null)));
i = ;
b = false;
}
else
{
builder.Append("@" + per[i].Name + ")");
}
}
else
{
if (b == true)
{
builder.Append(per[i].Name + ",");
sqlpar.Add(new SqlParameter("@" + per[i].Name, per[i].GetValue(ml, null)));
}
else
{
builder.Append("@"+per[i].Name + ",");
}
}
}
}
return vt.ExecuteNonQuery(builder.ToString(), sqlpar.ToArray());
}

SQL插入

 //查询
public static DataSet Login(Model ml)
{
Visit vt = new Visit();
Type type = ml.GetType();
PropertyInfo[] per = type.GetProperties();
List<SqlParameter> sqlpar = new List<SqlParameter>();
StringBuilder builder = new StringBuilder("select Uid from UsersTable where ");
for (int i = ; i < per.Length; i++)
{
if (per[i].GetValue(ml, null)!=null&& !per[i].Name.Equals("Uid"))
{
builder.Append(per[i].Name + "=@" + per[i].Name+" and ");
sqlpar.Add(new SqlParameter("@"+per[i].Name,per[i].GetValue(ml,null)));
} }
string sqlStr = builder.ToString().Substring(, builder.ToString().LastIndexOf("and"));
return vt.SqlDataAdapter(sqlStr, sqlpar.ToArray());
}

SQL查询

 public static bool upDate(Model ml)
{
Visit vt = new Visit();
StringBuilder sbuilder = new StringBuilder("Update UsersTable set "); Type ModelType = ml.GetType();
PropertyInfo[] ProPer = ModelType.GetProperties();
List<SqlParameter> sqlpara = new List<SqlParameter>(); foreach (PropertyInfo item in ProPer)
{
if (!string.IsNullOrEmpty(item.GetValue(ml,null).ToString())&& !item.Name.Equals("Uid"))
{
sbuilder.Append(item.Name + "=@" + item.Name+",");
sqlpara.Add(new SqlParameter("@" + item.Name, item.GetValue(ml, null)));
}
}
string str = sbuilder.ToString().Trim(',');
str += " where Uid=@Uid";
sqlpara.Add(new SqlParameter("@Uid", ml.Uid));
return vt.ExecuteNonQuery(str, sqlpara.ToArray()) > ; }

SQL更新

反射生成SQL语句的更多相关文章

  1. ASP.NET通过反射生成sql语句

    最近对接一个接口,需要通过xml序列化成实体后添加额外信息后批量插入数据库,需要手动拼sql.因为涉及多张表,拼凑很麻烦而且容易出错,所以写了两个工具方法来生成sql,先写到博客里面,以便以后不时之需 ...

  2. 反射生成SQL语句入门

    今天我们来学习学习通过反射技术来生成SQL语句. 反射提供了封装程序集.模块和类型的对象.您可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型.然后,可以调用类型的方法或访 ...

  3. 利用反射生成SQL语句

    // 修改学员信息的方法 public bool ModifyStudent(MODEL.Students model) { // 利用反映获取类对所有属性,用来动态生成SQL语句 StringBui ...

  4. 4、注解反射生成SQL语句

    .任务说明         ①有一张用户表,字段包括:用户ID.用户名.昵称.年龄.性别.所在城市.邮箱.手机号:         ②使用java注解来对用户表的每个字段或字段的组合条件进行动态生成S ...

  5. 根据反射生成SQL语句

    /** * 基础查询语句 * 返回类型的属性字符串Sql * @author: InkYi * 修改时间:2016年5月11日 - 上午10:06:00<br/> * 功能说明:<b ...

  6. 通过自定义注解反射生成SQL语句

    ----------------------------------------Program.cs---------------------------------------- using Sys ...

  7. C# - 通过自定义注解反射生成SQL语句[转]

    转自http://blog.163.com/jong_cai/blog/static/87028045200902033553581/ -------------------------------- ...

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

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

  9. 模拟Hibernate动态生成SQL语句

    这里有一个xml配置文件,也就是Hibernate框架中会用到的POJO和数据库的映射文件 <?xml version="1.0" encoding="utf-8& ...

随机推荐

  1. tinyxml学习一

    在TinyXML中,根据XML的各种元素来定义了一些类:         TiXmlBase:整个TinyXML模型的基类.         TiXmlAttribute:对应于XML中的元素的属性. ...

  2. Activity

    activity的生命周期: 第一个是:点击按钮切换到另一个activity界面. 第二个是:单击物理返回键的时候,是对当前的activity进行销毁动作. Activity的启动方式:直接启动和匿名 ...

  3. MVC4.0中项目发布遇到IE11时session存入URL中,导致记不住密码的问题

    ///MVC4.0中项目发布遇到IE11时session存入URL中,导致记不住密码的问题,在webconfig中配置<system.web><authentication mode ...

  4. plsql中文乱码显示问号的解决办法

    问题现象:  PLSQL执行sql语句,不识别中文,输出的中文标题显示成问号????. 解决办法: 1. 登陆plsql,执行sql语句,输出的中文标题显示成问号????:条件包含中文,则无数据输出: ...

  5. 2016-07-07: 重新编译时vc90.pdb不是创建此预编译头时使用的pdb文件

    使用VS2008在一个解决方案中包含多个项目时,当设置多个项目的中间目录为同一个目录时,在增量编译时出现"重新编译时vc90.pdb不是创建此预编译头时使用的pdb文件,请重新创建预编译头问 ...

  6. 关于php多线程的记录

    最近需要对3W台服务器进行下发脚本,如果一个一个执行,时间大约在2个小时,特别的慢,于是修改程序,采用php的多线程去分发,大概在10分钟左右完成,下面记录下这次的经验和理解: 我所理解的php的多线 ...

  7. (转)SpyGlass工具介绍

    Spyglass工具有五大模块: lint,  CDC(多时钟域检查), LP(低功耗),Constraint(约束),DFT(可测试性). 一,在RTL层面上预估芯片性能,从而引导设计人员开发出更加 ...

  8. 平行四边形TikZ作图

    %!TEX program = pdflatex \documentclass[varwidth=true, border=2pt]{standalone} \usepackage{tikz} \us ...

  9. Modbus协议

    总体上来说,发送命令格式如下:模块号(1字节)功能码 起始地址(2字节)   数据(X字节) CRC(2位) 模块号(1字节)功能码(要读取的寄存器,读 01,设置05,Coil Status/Inp ...

  10. ZMQ 在linux进程 和分布式之间的通信

    ZMQ 在linux进程 和分布式之间的通信 待补全