临沂360网站建设推广,积积桶肤肤的免费软件大全,深圳口碑最好的装修公司排名,如何做中英文网站设计最近碰上这个一个需求#xff0c;需要写一个接口#xff0c;将穿进来的参数#xff0c;存储到数据库里#xff0c;但是存到哪个库#xff0c;哪个表#xff0c;不确定#xff0c;需要根据参数去判断#xff0c;但数据结构是固定的#xff0c;因为表名不是固定的#… 最近碰上这个一个需求需要写一个接口将穿进来的参数存储到数据库里但是存到哪个库哪个表不确定需要根据参数去判断但数据结构是固定的因为表名不是固定的所以这就很麻烦了不能用EF直接去add或者是addRange了。需要自己去拼sql语句。 但是本人比较懒懒得去写sql语句所以就写了一个自动生成Insert语句的通用方法代码如下 /// summary/// 对象拼接sql语句/// /summarypublic class SqlBuilderHelper{/// summary/// Insert SQL语句/// /summary/// param nameobj要转换的对象不可空/param/// param nametableName要添加的表明不可空/param/// returns/// 空/// sql语句/// /returnspublic static string InsertSqlT(T t, string tableName) where T : class{if (t null || string.IsNullOrEmpty(tableName)){return string.Empty;}string columns GetColmons(t);if (string.IsNullOrEmpty(columns)){return string.Empty;}string values GetValues(t);if (string.IsNullOrEmpty(values)){return string.Empty;}StringBuilder sql new StringBuilder();sql.Append(Insert into tableName);sql.Append(( columns ));sql.Append( values( values ));return sql.ToString();}/// summary/// BulkInsert SQL语句批量添加/// /summary/// typeparam nameT类型/typeparam/// param nameobjs要转换的对象集合不可空/param/// param nametableName要添加的表明不可空/param/// returns/// 空/// sql语句/// /returnspublic static string BulkInsertSqlT(ListT objs, string tableName) where T : class{if (objs null || objs.Count 0 || string.IsNullOrEmpty(tableName)){return string.Empty;}string columns GetColmons(objs[0]);if (string.IsNullOrEmpty(columns)){return string.Empty;}string values string.Join(,, objs.Select(p string.Format(({0}), GetValues(p))).ToArray());StringBuilder sql new StringBuilder();sql.Append(Insert into tableName);sql.Append(( columns ));sql.Append( values values );return sql.ToString();}/// summary/// 获得类型的列名/// /summary/// param nameobj/param/// returns/returnsprivate static string GetColmonsT(T obj){if (obj null){return string.Empty;}return string.Join(,, obj.GetType().GetProperties().Select(p p.Name).ToList());}/// summary/// 获得值/// /summary/// param nameobj/param/// returns/returnsprivate static string GetValuesT(T obj){if (obj null){return string.Empty;}return string.Join(,, obj.GetType().GetProperties().Select(p string.Format({0}, p.GetValue(obj))).ToArray());}} 修改也写好了C#根据反射生成sql语句Update语句 这个可以直接使用有需要的朋友可以直接复制走。 有什么问题欢迎随时交流。 转载于:https://www.cnblogs.com/Yuuuuu/p/8688237.html