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         }
    动态生成数据表更新方法
    主要就是通过获取表中的列来生成代码字符串之后再以流的形式写入文本!
  • 相关阅读:
    我们应该如何防范黑客的攻击? 有哪些棘手问题?
    德国网络安全公司Avira被收购,估值为1.8亿美元
    物联网会成为黑客攻击的目标,智慧城市如何才安全?
    因新型冠状病毒,笔记本电脑销售增长,人们寻求更好的设备进行远程工作
    从电脑维修工到互联网大佬,他是怎么做到的?解读郭盛华最真实的传奇生涯
    企业防御网络风险保护计划的5个步骤
    加载失败图片加样式
    请求接口无权限
    iview button根据条件 disabled可用或者不可用
    vue跨组件传值
  • 原文地址:https://www.cnblogs.com/wangzheand/p/5374333.html
Copyright © 2011-2022 走看看