zoukankan      html  css  js  c++  java
  • 东软软件动态生成对数据表更新操作的方法

      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);
    ");
     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         }
    动态生成数据表更新方法
    主要就是通过获取表中的列来生成代码字符串之后再以流的形式写入文本!
  • 相关阅读:
    MySql清空所有表数据【慎用】
    积分墙已死?积分墙冲榜失效?请看看别人怎么玩转积分墙!
    [转]小心PHP的类定义顺序与继承的问题
    [转]PHP中替换换行符
    [转]php的public、protected、private三种访问控制模式的区别
    [转]Zend Studio中将tab转换为4个空格
    PHP预定义常量
    PHP Unit资料收集
    『Python』setup.py简介
    『计算机视觉』Mask-RCNN_项目文档翻译
  • 原文地址:https://www.cnblogs.com/wangzheand/p/5374333.html
Copyright © 2011-2022 走看看