博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
根据Model有值的自动生成添加的Sql语句
阅读量:4330 次
发布时间:2019-06-06

本文共 6297 字,大约阅读时间需要 20 分钟。

static string Table_Name = "";        ///         /// model实体中的字段名相对数据库表添加的字段        /// 如:        /// model中一字段名为cm_tableName,        /// 其中tableName为数据库表名        /// 则此变量的值为cm_        ///         static string Common_Prefix = "";        ///                  /// 泛型获取SQL  INSERT字符串                 ///                  /// 
对象类型
/// 对象类型参数 ///
返回SQL INSERT语句;调用方法:
public static String toSqlInsertBuilder
(this T md) { //要插入的字段 string SQL_STR_INSERT_FIELDS = ""; //要插入的值 string SQL_STR_INSERT_VALUES = ""; string SQL_STR = ""; //获取当前实例的类型 Type type = md.GetType(); //获取实体名(即表名) String tableName = type.Name.ToString(); //如果表名还没给值,则把表名赋给它 //Table_Name = str; //插入语句的头部 String SQL_STR_INSERT_HEADER = "insert into " + tableName + "("; //根据类型创建一个空的实体model object obj = Activator.CreateInstance(type); //获取所有为Public的字段和实例成员(如果有的话) PropertyInfo[] props = type.GetProperties(BindingFlags.Public | BindingFlags.Instance); //遍历每一个字段 foreach (PropertyInfo p in props) { if (p.GetValue(md, null) != null) { if (p.Name.ToLower() != "id") { //返回传入的实体中此(P)字段的值,如果此值不为空,则进入if方法体内 if (p.GetValue(md, null).ToString().Trim().Length > 0) { SQL_STR_INSERT_FIELDS = SQL_STR_INSERT_FIELDS //将字段名比数据库字段名多的部分替换掉 //.Replace(Common_Prefix.ToLower().ToString(), "") + p.Name.ToLower().ToString() + ","; SQL_STR_INSERT_VALUES = SQL_STR_INSERT_VALUES + "', '" + p.GetValue(md, null).ToString().Trim(); } } } } // if (SQL_STR_INSERT_FIELDS.ToString().Trim().Length > 3) { SQL_STR = SQL_STR_INSERT_HEADER + SQL_STR_INSERT_FIELDS.Substring(0, SQL_STR_INSERT_FIELDS.Length - 1) + ")values(" + SQL_STR_INSERT_VALUES.Substring(2, SQL_STR_INSERT_VALUES.Length - 2) + "');"; } return SQL_STR; } public static String SqlInsertBuilder(DataSet Ds) { DataTable dt = new DataTable(); if (Ds != null) { if (Ds.Tables.Count > 0) { dt = Ds.Tables[0]; } } String SQL_STR_INSERT_HEADER = "insert into mytablename("; string SQL_STR_INSERT_FIELDS = ""; string SQL_STR_INSERT_VALUES = ""; string SQL_STR = ""; if (dt.Rows.Count > 0) { SQL_STR = ""; foreach (DataRow dr in dt.Rows) { SQL_STR_INSERT_HEADER = "insert into mytablename("; SQL_STR_INSERT_HEADER = SQL_STR_INSERT_HEADER.Replace("mytablename", Table_Name.ToString()); SQL_STR_INSERT_FIELDS = "";// SQL_STR_INSERT_FIELDS + dc.ColumnName.ToLower().ToString() + ","; SQL_STR_INSERT_VALUES = "";//SQL_STR_INSERT_VALUES + "', '" + dr[dc.ColumnName].ToString().Trim(); foreach (DataColumn dc in dt.Columns) { if (dr[dc.ColumnName].ToString().Trim().Length > 0) { SQL_STR_INSERT_FIELDS = SQL_STR_INSERT_FIELDS + dc.ColumnName.ToLower().ToString() + ","; SQL_STR_INSERT_VALUES = SQL_STR_INSERT_VALUES + "', '" + dr[dc.ColumnName].ToString().Trim(); } } if (SQL_STR_INSERT_FIELDS.ToString().Trim().Length > 3) { SQL_STR = SQL_STR + SQL_STR_INSERT_HEADER + SQL_STR_INSERT_FIELDS.Substring(0, SQL_STR_INSERT_FIELDS.Length - 1) + ")values(" + SQL_STR_INSERT_VALUES.Substring(2, SQL_STR_INSERT_VALUES.Length - 2) + "');"; } } } return SQL_STR; } public static String SqlInsertBuilder(DataTable dt) { String SQL_STR_INSERT_HEADER = "insert into mytablename("; string SQL_STR_INSERT_FIELDS = ""; string SQL_STR_INSERT_VALUES = ""; string SQL_STR = ""; if (dt.Rows.Count > 0) { SQL_STR = ""; foreach (DataRow dr in dt.Rows) { SQL_STR_INSERT_HEADER = "insert into mytablename("; SQL_STR_INSERT_HEADER = SQL_STR_INSERT_HEADER.Replace("mytablename", Table_Name.ToString()); SQL_STR_INSERT_FIELDS = ""; SQL_STR_INSERT_VALUES = ""; foreach (DataColumn dc in dt.Columns) { if (dr[dc.ColumnName].ToString().Trim().Length > 0) { SQL_STR_INSERT_FIELDS = SQL_STR_INSERT_FIELDS + dc.ColumnName.ToLower().ToString() + ","; SQL_STR_INSERT_VALUES = SQL_STR_INSERT_VALUES + "', '" + dr[dc.ColumnName].ToString().Trim(); } } if (SQL_STR_INSERT_FIELDS.ToString().Trim().Length > 3) { SQL_STR = SQL_STR + SQL_STR_INSERT_HEADER + SQL_STR_INSERT_FIELDS.Substring(0, SQL_STR_INSERT_FIELDS.Length - 1) + ")values(" + SQL_STR_INSERT_VALUES.Substring(2, SQL_STR_INSERT_VALUES.Length - 2) + "');"; } } } return SQL_STR; }

 

转载于:https://www.cnblogs.com/qiywtc/p/4583855.html

你可能感兴趣的文章
main(argc,argv[])
查看>>
在线教育工具—白板系统的迭代1——bug监控排查
查看>>
121. Best Time to Buy and Sell Stock
查看>>
hdu 1005 根据递推公式构造矩阵 ( 矩阵快速幂)
查看>>
安装php扩展
查看>>
百度移动搜索主要有如下几类结果构成
查看>>
Python爬虫面试题170道:2019版【1】
查看>>
JavaBean规范
查看>>
第四阶段 15_Linux tomcat安装与配置
查看>>
NAS 创建大文件
查看>>
学习笔记-模块之xml文件处理
查看>>
接口测试用例
查看>>
面试:用 Java 实现一个 Singleton 模式
查看>>
Sybase IQ导出文件的几种方式
查看>>
案例:手动输入一个字符串,打散放进一个列表,小写字母反序 大写字母保持不变...
查看>>
linux 系统下 tar 的压缩与解压缩命令
查看>>
阿里负载均衡,配置中间证书问题(在starcom申请免费DV ssl)
查看>>
转:How to force a wordbreaker to be used in Sharepoint Search
查看>>
MySQL存储过程定时任务
查看>>
Python中and(逻辑与)计算法则
查看>>