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         }
    动态生成数据表更新方法
    主要就是通过获取表中的列来生成代码字符串之后再以流的形式写入文本!
  • 相关阅读:
    作业5,6 2019/10/23
    作业1、2、3、4 2019/10/23
    实现Map传参Mybatis
    maven工程配置pom.xml实现mybatis的访问数据库操作
    测试
    Postman篇之命令行测试
    unittest框架
    测试
    测试
    测试
  • 原文地址:https://www.cnblogs.com/wangzheand/p/5374333.html
Copyright © 2011-2022 走看看