1  public string CreatUpdate()
  2         {
  3
  4             StringPlus strclass = new StringPlus();
  5             StringPlus strclass1 = new StringPlus();
  6             StringPlus strclass2 = new StringPlus();
  7            //方法注释
  8             strclass.AppendSpaceLine(2, "/// <summary>");
  9             strclass.AppendSpaceLine(2, "/// " + Languagelist["summaryUpdate"].ToString());
 10             strclass.AppendSpaceLine(2, "/// </summary>");
 11             //构建方法指定方法形参为要更改的数据表对应的实体对象
 12             strclass.AppendSpaceLine(2, "public bool Update(" + ModelSpace + " model)");
 13             strclass.AppendSpaceLine(2, "{");
 14             //构建StringBuilder实例装在Sql语句
 15             strclass.AppendSpaceLine(3, "StringBuilder strSql=new StringBuilder();");
 16             strclass.AppendSpaceLine(3, "strSql.Append(\"update " + _tablename + " set \");");
 17             //表中所有列,获取列名、数据类型、长度、是否只增及是否为主键
 18             foreach (ColumnInfo field in Fieldlist)
 19             {
 20                 string columnName = field.ColumnName;
 21                 string columnType = field.TypeName;
 22                 string Length = field.Length;
 23                 bool IsIdentity = field.IsIdentity;
 24                 bool isPK = field.IsPrimaryKey;
 25
 26                 strclass1.AppendSpaceLine(3, "db.AddInParameter(dbCommand, \"" + columnName + "\", DbType." + CSToProcType(columnType) + ", model." + columnName + ");");
 27
 28                 if (field.IsIdentity || field.IsPrimaryKey || (Keys.Contains(field)))
 29                 {
 30                     continue;
 31                 }
 32                   // 构建赋值语句
 33                 strclass.AppendSpaceLine(3, "strSql.Append(\"" + columnName + "=" + preParameter + columnName + ",\");");
 34             }
 35
 36
 37             //去掉最后的逗号
 38             strclass.DelLastComma();
 39             strclass.AppendLine("\");");
 40             //构建Where条件
 41             strclass.AppendSpaceLine(3, "strSql.Append(\" where " + GetWhereExpression(Keys) + "\");");
 42
 43              //创建命令对象
 44             strclass.AppendSpaceLine(3, "Database db = DatabaseFactory.CreateDatabase();");
 45             strclass.AppendSpaceLine(3, "DbCommand dbCommand = db.GetSqlStringCommand(strSql.ToString());");
 46
 47
 48             strclass.Append(strclass1.Value);
 49             //向数据库提交sql语句并返回执行结果
 50             strclass.AppendSpaceLine(3, "int rows=db.ExecuteNonQuery(dbCommand);\r\n");
 51             //判断结果并返回相应提示
 52             strclass.AppendSpaceLine(3, "if (rows > 0)");
 53             strclass.AppendSpaceLine(3, "{");
 54             strclass.AppendSpaceLine(4, "return true;");
 55             strclass.AppendSpaceLine(3, "}");
 56             strclass.AppendSpaceLine(3, "else");
 57             strclass.AppendSpaceLine(3, "{");
 58             strclass.AppendSpaceLine(4, "return false;");
 59             strclass.AppendSpaceLine(3, "}");
 60
 61
 62             strclass.AppendSpaceLine(2, "}");
 63             return strclass.ToString();
 64         }

动态生成数据表更新方法

主要就是通过获取表中的列来生成代码字符串之后再以流的形式写入文本!

转载于:https://www.cnblogs.com/wangzheand/p/5374333.html

东软软件动态生成对数据表更新操作的方法相关推荐

  1. 改用C++生成自动化数据表

    改用C++生成自动化数据表 前面的文章中,我们讨论了使用一个基于.NET的第三方程序库来从程序中来生成数据表.在我看来,这整个思路是非常有用的,例如为显示测试结果.我经常会自己在博客中尝试各种像这样的 ...

  2. 软件测试作业8:分析自动售货机软件例子生成的判定表图例

    作业8 1.分析 Chap.5 (Lec.19) 自动售货机软件例子生成的判定表图例的第6列和第23列,分别给出: (1).输入条件的自然语义陈述: (2).输出结果的自然语义陈述: (3).用命题逻 ...

  3. layui进度条:调用、参数设置、动态渲染、数据热更新 (含案例、代码)

    文章目录 layui进度条:调用.参数设置.动态渲染.数据热更新 (含案例.代码) 一.demo案例 1.1. 应用 · 截图: 1.2. 案例 · 全部代码: 二.自定义案例 2.1. 部分代码: ...

  4. 通过爬取天猫商品评论实例分析Python爬取ajax动态生成的数据

    本文主要通过爬取天猫商品kindle的评论为例来说明利用python爬取ajax动态生成的数据的方式,本文使用的工具如下: 工具 chrome浏览器[寻找评论的动态链接] python3.5[执行代码 ...

  5. MySQL基本操作命令和数据表高级操作

    数据库之MySQL基本操作命令 一.常用的数据类型 二.查看数据库.表和表结构 1.查看数据库 2.查看数据库包含的表 3.查看表结构 三.SQL语句 创建新的数据库 创建新的表 删除指定数据表 删除 ...

  6. mysql 数据修改记录日志_mysql对数据的更新操作记录在哪个日志中?

    mysql对数据的更新操作记录在通用查询日志和二进制日志中.通用查询日志用来记录用户的所有操作,包括启动和关闭 MySQL 服务.更新语句和查询语句等:二进制日志会以二进制的形式记录数据库的各种操作, ...

  7. update和delete操作忘加where条件导致全表更新的处理方法

    在数据库日常维护中,开发人员是最让人头痛的,很多时候都会由于SQL语句写的有问题导致服务器出问题,导致资源耗尽.最危险的操作就是在做DML操作的时候忘加where条件,导致全表更新,这是作为运维或者D ...

  8. MySQL第二讲 - 数据表简单操作 与 “增删查改的开头部分- 增”- 细节狂魔

    文章目录 前文知识点回顾   SQL语句 >>操作指令 (不区分大小写) 1.显示数据库:show databases; 2.创建数据库:create database 数据库名; [如果 ...

  9. 4、MySQL——向数据表中插入数据,修改数据表中的数据,数据表删除操作

    目录 一.数据表插入操作:INSERT 1. 给表中的所有字段插入数据 2.给表中的个别字段插入数据 3.向数据表中批量插入多条数据 二.数据表修改操作:UPDATE 1.修改所有字段的数据 2.修改 ...

最新文章

  1. 一次次小进步,从毕业开始,你到现在飞跃了几次了,程序人生也不容易?
  2. 如何用Jupyter Notebook制作新冠病毒疫情追踪器?
  3. 《LeetCode力扣练习》第2题 C语言版 (做出来就行,别问我效率。。。。)
  4. python网络爬虫权威指南 百度云-Python网络爬虫权威指南 PDF 第2版
  5. IO:Reactor设计模式
  6. CF914G Sum the Fibonacci(FWT模板+子集卷积)
  7. linux通过不同端口访问,linux下两个tomcat通过不同端口访问不同项目
  8. ModelState用法
  9. 通信(1)---LTE 整体架构
  10. 鲁大师公布Q1手机UI排行:第一万万没想到
  11. linux cpu intr s,mpstat命令(linux cpu监控工具)
  12. Pycharm汉化后设置无法打开解决办法
  13. 贴片铝电解电容封装的说明
  14. PostgreSQL与中文社区
  15. 西南石油大学计算机类云南省分数线,2017西南石油大学各专业分数线
  16. 分数段统计函数c语言,Excel 五个函数统计学生期末考试分数段
  17. 致力于量子计算商业化,量旋科技欲在超导量子领域取得突破
  18. How to make a Speech Machine
  19. Ubuntu20.04设置开机自启脚本、开机自启命令(ubuntu自启,ubuntu开机自启)rc(run command)(systemd)(/etc/rc.local)(开机启动原理)开机自启动
  20. 程序员的四境界、七宗罪与七武器

热门文章

  1. 谁不想写出干净的代码?7 个技巧,让你的同事爱上你的代码
  2. geetest文件夹什么意思_手机文件夹是英文不敢删?只要找出这5个文件夹,能腾出大量内存...
  3. oracle并行查询结果不唯一,Oracle数据库并行查询出错的解决方法
  4. 4a怎么打开sqlserver_百元级别荣耀路由X3和小米路由4A,哪款真的香?
  5. 南京理工大学计算机专业考研,2020南京理工大学计算机考研初试科目、参考书目、复试详情汇总...
  6. .net core 获取binary 文件_7.2 获取文本数据_Csv.Document
  7. C语言学习笔记---位字段
  8. STM8单片机产生随机数
  9. 我是如何解决jobtracker.info could only be replicated to 0 nodes, instead of 1这个问题的
  10. DICOM协议资料汇集