博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
东软软件动态生成对数据表更新操作的方法
阅读量:5157 次
发布时间:2019-06-13

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

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, "/// ");  9             strclass.AppendSpaceLine(2, "/// " + Languagelist["summaryUpdate"].ToString()); 10             strclass.AppendSpaceLine(2, "/// "); 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

你可能感兴趣的文章
Linux关闭SELinux
查看>>
虚拟机(VM)安装openwrt-koolshare软路由
查看>>
CentOS7下使用Sonatype Nexus3搭建Docker私有仓库
查看>>
Kubernetes-Linux系统初始化
查看>>
kubernetes--资源清单
查看>>
Kubernetes---容器的生命周期
查看>>
CentOS7下使用Harbor搭建Docker私有仓库
查看>>
Kubernetes---Pod hook
查看>>
Kubernetes---Pod phase
查看>>
二进制序列化与反序列化
查看>>
构建之法—— 读书笔记(3)
查看>>
WebView cookies清理
查看>>
HTML5新增特性
查看>>
python中的lambda知多少!
查看>>
Java之事件处理
查看>>
递归删除.svn文件
查看>>
(CSharp)克隆控件事件
查看>>
AsyncHttpClient 官网的东西
查看>>
整理:GET与POST的区别
查看>>
iOS开发UI篇—九宫格坐标计算
查看>>