Sql通用增删改查带参数方法
来源:互联网 发布:专业淘宝货源批发市场 编辑:程序博客网 时间:2024/06/06 11:38
引子:由于现在数据库安全的关注越来越多,sql注入几乎是绝对忽略的一环,sql语句带参数就相对安全一些,但是平常的一些查询语句带参数,写的较为繁琐,于是就想如何能够节省工作量,便做了一个通用中间库,希望能有所帮助(盗版了我同事的代码)。
原理:利用T entity的反射拼接
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Data;namespace DB{ public interface IDataBaseHelper<T> where T: class,new() { /// <summary> /// 添加 /// </summary> /// <param name="table"></param> /// <param name="entity"></param> /// <returns></returns> bool Add(T entity); DataSet Select(string col, T entity); }}
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Data;using System.Data.SqlClient;namespace DB{ public class DataBaseHelper<T>:IDataBaseHelper<T> where T:class,new() { public bool Add(T entity) { string cols=""; string vals=""; List<SqlParameter> parameterList = new List<SqlParameter>(); parameterList.Add(new SqlParameter("@table", entity.GetType().Name)); foreach(var item in entity.GetType().GetProperties()){ cols +=item.Name+","; vals +="@"+item.Name+","; SqlParameter parameter=new SqlParameter(); parameter.ParameterName="@"+item.Name; parameter.Value=item.GetValue(entity,null); parameterList.Add(parameter); } StringBuilder strSql=new StringBuilder(); strSql.Append("insert into @table("); strSql.Append(cols.Substring(0,cols.Length-1)); strSql.Append(") values ("); strSql.Append(vals.Substring(0,cols.Length-1)); strSql.Append(")"); DbHelperOra.ExecuteSql(strSql.ToString(),parameterList.ToArray()); } public DataSet Select(string col, T entity) { string cols = ""; List<SqlParameter> parameterList = new List<SqlParameter>(); parameterList.Add(new SqlParameter("@table", entity.GetType().Name)); foreach (var item in entity.GetType().GetProperties()) { cols += " "+item.Name + "=@"+item.Name+" and"; SqlParameter parameter = new SqlParameter(); parameter.ParameterName = "@" + item.Name; parameter.Value = item.GetValue(entity, null); parameterList.Add(parameter); } StringBuilder strSql = new StringBuilder(); strSql.Append("select "+col +" from @table"); if (entity != null) { strSql.Append("where " + cols.Substring(0,cols.Length-3)); } DataSet ds= DbHelperOra.Query(strSql.ToString(), parameterList.ToArray()); return ds; } }}
结束语:代码没有完全完善,也不知道这样子会不会带来什么不好的后果,比如执行效率低下等等。希望同学拍砖。
0 0
- Sql通用增删改查带参数方法
- 关于jdbc 增删改通用的方法,只需要传sql语句和查询条件
- 有关数据库增删改(通用方法)
- jdbc 增删改的通用方法
- SQL行转列汇总--通用方法
- SQLiteDataBase的增删改查方法参数
- dao实现层通用增删改查方法
- [置顶]Entity Framework增删改之通用精简方法
- JAVAWEB Dao模式之增删改和查询通用方法
- 增删改查-反射技术通用的方法
- javascript获取url参数通用方法
- 通用增删改查
- SQL语句映射文件(2)增删改查、参数、缓存
- MyBatis学习之SQL查询参数以及增删改操作
- SQL语句映射文件(2)增删改查、参数、缓存
- 参数为HashMap形式的增删改查命名SQL
- C# 对sql通用分页方法
- update通用生成SQL语句方法
- iOS UITableViewCell上的双击事件
- Oracle分区详细解析
- 什么是ValueStack
- read-only file system的解决
- keepalived安装与配置
- Sql通用增删改查带参数方法
- NetSpeed--网速检测
- sql和t-sql语句学习
- IOS Reachability库监听网络状态
- V$SQL,V$SQLAREA,V$SQLTEXT
- ios xmpp 文件传输
- unity 给物体边缘加高光轮廓的办法,付Demo(增加一组算法)
- How can I recover a file that I deleted in my local repo from the remote repo in Git?
- sgu-249 Matrix