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. json和字符串转换

    json对象转js字符串 JSON.stringify(json) js字符串转json对象 var json= $.parseJSON(str);

  2. <a>标签的href和onclick属性

    讨论 <a>标签中,href和onclick事件的顺序与冲突问题. 首先明确一点:链接的onclick 事件被先执行,其次是href属性下的动作(页面跳转,或 javascript 伪链接 ...

  3. sql条件中比较性能优化

    第一个比第二个性能高. 查询语句意义: 如果codelist中tablecode配置为0时, t.Table_Code = 'SV_RETURN_BILL'不生效. 如果codelist中tablec ...

  4. checkinstall打包工具使用

    checkinstall官网: http://asic-linux.com.mx/~izto/checkinstall/ 下载安装checkinstall: # git clone http://ch ...

  5. 8.3 H5学习笔记

    隐藏域 <form action="" method="post" enctype="multipart/form-data"> ...

  6. Get the Uniqueid of Action Originate in the AMI

    [asterisk-users] Get the Uniqueid of Action Originate in the AMI Adolphe Cher-Aime acheraime at gmai ...

  7. Servlet 利用Session实现不重复登录

    import java.io.IOException;import java.io.PrintWriter;import java.util.ArrayList;import java.util.It ...

  8. blob storage第一次亲密接触

    由于azure上各个云服务都是分开的,所以当一个地方生成文件后,我在别的地方想要读取他就变得困难,不过azure上面有解决方案,就是azure blob storage. 在现有的订阅账号下,新建一个 ...

  9. Ajax2

    一.完整版Ajax $.ajax({ url: "Ashxs/Login.ashx", data: { "name": name, "pwd" ...

  10. 关于jquery判断对象是否为空

    1. jquery对象分为两种,一种是dom对象,dom对象会自带一个length属性,所以这种情况: obj.length == 0 可以判断对象为空 2. jquery也可以自定义对象,如 var ...