反射生成SQL语句
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语句的更多相关文章
- ASP.NET通过反射生成sql语句
最近对接一个接口,需要通过xml序列化成实体后添加额外信息后批量插入数据库,需要手动拼sql.因为涉及多张表,拼凑很麻烦而且容易出错,所以写了两个工具方法来生成sql,先写到博客里面,以便以后不时之需 ...
- 反射生成SQL语句入门
今天我们来学习学习通过反射技术来生成SQL语句. 反射提供了封装程序集.模块和类型的对象.您可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型.然后,可以调用类型的方法或访 ...
- 利用反射生成SQL语句
// 修改学员信息的方法 public bool ModifyStudent(MODEL.Students model) { // 利用反映获取类对所有属性,用来动态生成SQL语句 StringBui ...
- 4、注解反射生成SQL语句
.任务说明 ①有一张用户表,字段包括:用户ID.用户名.昵称.年龄.性别.所在城市.邮箱.手机号: ②使用java注解来对用户表的每个字段或字段的组合条件进行动态生成S ...
- 根据反射生成SQL语句
/** * 基础查询语句 * 返回类型的属性字符串Sql * @author: InkYi * 修改时间:2016年5月11日 - 上午10:06:00<br/> * 功能说明:<b ...
- 通过自定义注解反射生成SQL语句
----------------------------------------Program.cs---------------------------------------- using Sys ...
- C# - 通过自定义注解反射生成SQL语句[转]
转自http://blog.163.com/jong_cai/blog/static/87028045200902033553581/ -------------------------------- ...
- 利用反射自动生成SQL语句(仿Linq)
转:http://www.cnblogs.com/the7stroke/archive/2012/04/22/2465597.html using System; using System.Colle ...
- 模拟Hibernate动态生成SQL语句
这里有一个xml配置文件,也就是Hibernate框架中会用到的POJO和数据库的映射文件 <?xml version="1.0" encoding="utf-8& ...
随机推荐
- 通过案例对 spark streaming 透彻理解三板斧之三:spark streaming运行机制与架构
本期内容: 1. Spark Streaming Job架构与运行机制 2. Spark Streaming 容错架构与运行机制 事实上时间是不存在的,是由人的感官系统感觉时间的存在而已,是一种虚幻的 ...
- leetcode 136
136. Single Number Given an array of integers, every element appears twice except for one. Find that ...
- Hibernate day04笔记
整合log4j(了解) slf4j 核心jar : slf4j-api-1.6.1.jar .slf4j是日志框架,将其他优秀的日志第三方进行整合. 整合导入jar包 log4j 核 ...
- linux grep命令详解
linux grep命令详解 简介 grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来 ...
- Lock锁的使用示例
Lock锁是java5用来代替synchronized的一种面向对象的锁的方案 public class LockDemo { /** * Lock是用来替换synchronized, 优点是Lock ...
- 【227】◀▶ IDL 其他常用函数
参考:Programming and Control Routines —— 编程和控制函数 01 N_ELEMENTS 表达式或者变量的元素个数. 02 DEFSYSV 定义系统变量. 03 ...
- socket笔记
参考: http://www.cnblogs.com/dolphinX/p/3460545.html http://www.cnblogs.com/wei2yi/archive/2011/03/23/ ...
- Android-Junit-Report测试报告生成——Android自动化测试学习历程
视频地址: http://www.chuanke.com/v1983382-135467-384869.html 这个内容其实已经在用了,我在上一篇文章robotium—只有apk文件的测试中已经讲过 ...
- 运行时报错-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资料,点击允许即可.
- IE调试网页之四:F12 开发人员工具控制台错误消息 (Windows)(转载)
F12 工具控制台可以报告在运行时期间发生的错误和信息消息.本文将介绍错误消息,并提供有关如何修正这些错误的建议. 简介 F12 工具控制台错误消息提供了一些代码(例如,SEC7111 或 HTML1 ...