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. 第五百八十五天 how can I 坚持

    时间过得真的好快啊,晚上不一会就十一点多了,稍微一堕落,时间就没了,还没来得及好好看会书.. 终于把solr拼音搜索弄好了,明天搞搞suggest. 写字,睡觉.

  2. WEB-INF下jsp跳转

    今天才知道:浏览器是不允许直接访问WEB-INF文件夹的 瞬间感觉自己好shi的有没有,纠结了2天 看来还得通过springMVC来跳,,,

  3. Objective c, +load, +initialize 方法

    +load() 当类被加载入程序的时候会执行+load方法 +initialize() 当类第一次被使用的时候会执行+initialize方法 这两个方法都只会被执行一次.

  4. 手把手教你编写一个具有基本功能的shell(已开源)

    刚接触Linux时,对shell总有种神秘感:在对shell的工作原理有所了解之后,便尝试着动手写一个shell.下面是一个从最简单的情况开始,一步步完成一个模拟的shell(我命名之为wshell) ...

  5. Apache错误:[error] (OS 10038)在一个非套接字上尝试了一个操作

    Apache错误:[error] (OS 10038)在一个非套接字上尝试了一个操作          博客分类: vb2005xu软件学习 OSApache防火墙PHPWindows  日志如下:[ ...

  6. OpenSSL命令---passwd

    NAME passwd - compute password hashes SYNOPSIS openssl passwd [-crypt] [-1] [-apr1] [-salt string] [ ...

  7. Linux网络编程-SIGPIPE信号导致的程序退出问题

    当客户端close关闭连接时,若server端接着发送数据,根据TCP协议的规定,server端会收到RST响应,当server端再次往客户端发送数据时,系统会发出一个SIGPIPE信号给server ...

  8. VirtualBox中的虚拟机要如何设置,才能够上网

    VirtualBox中有4种网络连接方式:1. NAT2. Bridged Adapter3. Internal4. Host-only Adapter 一般设置成NAT网路就可以,但是由于我在公司上 ...

  9. [python] 线程锁

    参考:http://blog.csdn.net/kobeyan/article/details/44039831 1. 锁的概念 在python中,存在GIL,也就是全局解释器锁,能够保证同一时刻只有 ...

  10. [转]linux14.04下caffe的安装步骤

     linux14.04下caffe的安装步骤   原文地址:http://blog.csdn.net/xiaoyang19910623/article/details/52997481?locatio ...