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. 通过案例对 spark streaming 透彻理解三板斧之三:spark streaming运行机制与架构

    本期内容: 1. Spark Streaming Job架构与运行机制 2. Spark Streaming 容错架构与运行机制 事实上时间是不存在的,是由人的感官系统感觉时间的存在而已,是一种虚幻的 ...

  2. leetcode 136

    136. Single Number Given an array of integers, every element appears twice except for one. Find that ...

  3. Hibernate day04笔记

    整合log4j(了解) slf4j 核心jar : slf4j-api-1.6.1.jar .slf4j是日志框架,将其他优秀的日志第三方进行整合.      整合导入jar包     log4j 核 ...

  4. linux grep命令详解

    linux grep命令详解 简介 grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来 ...

  5. Lock锁的使用示例

    Lock锁是java5用来代替synchronized的一种面向对象的锁的方案 public class LockDemo { /** * Lock是用来替换synchronized, 优点是Lock ...

  6. 【227】◀▶ IDL 其他常用函数

    参考:Programming and Control Routines —— 编程和控制函数 01   N_ELEMENTS 表达式或者变量的元素个数. 02   DEFSYSV 定义系统变量. 03 ...

  7. socket笔记

    参考: http://www.cnblogs.com/dolphinX/p/3460545.html http://www.cnblogs.com/wei2yi/archive/2011/03/23/ ...

  8. Android-Junit-Report测试报告生成——Android自动化测试学习历程

    视频地址: http://www.chuanke.com/v1983382-135467-384869.html 这个内容其实已经在用了,我在上一篇文章robotium—只有apk文件的测试中已经讲过 ...

  9. 运行时报错-Verify the Developer App certificate for youraccount is trusted on your device. Open Settings on Mayoyi_sakura and navigate to General -> Device Management, then select your

    解决方法:打开手机设置->通用->设备管理,找到编辑工程时的ID资料,点击允许即可.

  10. IE调试网页之四:F12 开发人员工具控制台错误消息 (Windows)(转载)

    F12 工具控制台可以报告在运行时期间发生的错误和信息消息.本文将介绍错误消息,并提供有关如何修正这些错误的建议. 简介 F12 工具控制台错误消息提供了一些代码(例如,SEC7111 或 HTML1 ...