zoukankan      html  css  js  c++  java
  • .net代码生成器自动生成DAL和BLL类库

    public partial class Index : Form
        {
            public Index()
            {
                InitializeComponent();
                GetDatabaseName();
            }

      //连接数据库,并显示数据库
      

    代码
    string classNameLastTag = string.Empty;
    public void GetDatabaseName()
    {
    string sql = "select name from sysdatabases";
    using (SqlDataReader reader = DBHelper.ExecuteReader(String.Format(DBHelper.CONNSTRING, "master"), CommandType.Text, sql, null))
    {
    while (reader.Read())
    {
    cbbDateBaseName.Items.Add(reader[
    "Name"].ToString());

    }
    cbbDateBaseName.SelectedIndex
    = 0;
    }

    }

            /// <summary>
            /// 生成数据访问层
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>

            private void btnDAL_Click(object sender, EventArgs e)
            {

        
                classNameLastTag = "Service";
                string sql = "SELECT * FROM " + cboDataTable.Text;
                if (cboDataTable.Text == "")
                {
                    MessageBox.Show("请选择要生成的表");
                    return;
                }

      //生成分页代码
           

    代码
    StringBuilder sb = new StringBuilder();
    using (SqlDataReader reader = DBHelper.ExecuteReader(String.Format(DBHelper.CONNSTRING, cbbDateBaseName.Text), CommandType.Text, sql, null))
    {

    sb.AppendLine(
    "using System;");
    sb.AppendLine(
    "using System.Collections.Generic;");
    sb.AppendLine(
    "using System.Linq;");
    sb.AppendLine(
    "using System.Text;");
    sb.AppendLine(
    "using " + cbbDateBaseName.Text + ".Model;");
    sb.AppendLine(
    "using System.Data.SqlClient;");
    sb.AppendLine(
    "using System.Data");
    sb.AppendLine(
    "namespace " + cbbDateBaseName.Text + ".DAL");
    sb.AppendLine(
    "{");
    sb.AppendLine(
    "\tpublic class " + cboDataTable.Text + "Service");
    sb.AppendLine(
    "\t{");
    sb.AppendLine(
    "\t\t///<summary>");
    sb.AppendLine(
    "\t\t///得到" + cboDataTable.Text + "数据进行分页");
    sb.AppendLine(
    "\t\t///<summary>");
    sb.AppendLine(
    "\t\t///<param name=\"pageSize\"></param>");
    sb.AppendLine(
    "\t\t///<param name=\"pageIndex\"></param>");
    sb.AppendLine(
    "\t\tpublic static IList<" + cboDataTable.Text + "> GetAll" + cboDataTable.Text + "(int pageSize, int pageIndex)");
    sb.AppendLine(
    "\t\t{");
    sb.AppendLine(
    "\t\t\tpageIndex--");
    sb.AppendLine(
    "\t\t\tIList<" + cboDataTable.Text + "> list =new List<" + cboDataTable.Text + ">();");
    sb.AppendLine(
    "\t\t\tstring sql=\"select top (@pageSize) * from " + cboDataTable.Text + " where Id not in(select top (@pageSize*@pageIndex) Id from " + cboDataTable.Text + " order by id desc) order by id desc;\"");
    sb.AppendLine(
    "\t\t\tSqlParameter[] pare = new SqlParameter[] ");
    sb.AppendLine(
    "\t\t\t{");
    sb.AppendLine(
    "\t\t\t\tnew SqlParameter(\"@pageSize\",pageSize),");
    sb.AppendLine(
    "\t\t\t\tnew SqlParameter(\"@pageIndex\",pageIndex)");
    sb.AppendLine(
    "\t\t\t};");
    sb.AppendLine(
    "\t\t\tusing (SqlDataReader reader = DBHelper.ExecuteReader(DBHelper.CONNSTRING, CommandType.Text, sql,pare)");
    sb.AppendLine(
    "\t\t\t{");
    sb.AppendLine(
    "\t\t\t\twhile (reader.Read())");
    sb.AppendLine(
    "\t\t\t\t{");
    sb.AppendLine(
    "\t\t\t\t\t" + cboDataTable.Text + " " + cboDataTable.Text.ToLower() + " = new " + cboDataTable.Text + "();");
    for (int i = 0; i < reader.FieldCount; i++)
    {
    if (reader.GetFieldType(i).ToString() == "System.Int32")
    {
    sb.AppendLine(
    "\t\t\t\t\t" + cboDataTable.Text.ToLower() + "." + reader.GetName(i) + " = Convert.ToInt32(reader[\"" + reader.GetName(i) + "\"]);");

    }
    else if (reader.GetFieldType(i).ToString() == "System.String")
    {
    sb.AppendLine(
    "\t\t\t\t\t" + cboDataTable.Text.ToLower() + "." + reader.GetName(i) + " = reader[\"" + reader.GetName(i) + "\"].ToString();");

    }
    else if (reader.GetFieldType(i).ToString() == "System.DateTime")
    {
    sb.AppendLine(
    "\t\t\t\t\t" + cboDataTable.Text.ToLower() + "." + reader.GetName(i) + " = Convert.ToDateTime(reader[\"" + reader.GetName(i) + "\"]);");

    }
    else if (reader.GetFieldType(i).ToString() == "System.Boolean")
    {
    sb.AppendLine(
    "\t\t\t\t\t" + cboDataTable.Text.ToLower() + "." + reader.GetName(i) + " = Convert.ToBoolean(reader[\"" + reader.GetName(i) + "\"]);");

    }
    else if (reader.GetFieldType(i).ToString() == "System.Byte[]")
    {
    sb.AppendLine(
    "\t\t\t\t\t" + cboDataTable.Text.ToLower() + "." + reader.GetName(i) + " = Convert.ToByte(reader[\"" + reader.GetName(i) + "\"]);");

    }
    else if (reader.GetFieldType(i).ToString() == "System.Double")
    {
    sb.AppendLine(
    "\t\t\t\t\t" + cboDataTable.Text.ToLower() + "." + reader.GetName(i) + " = Convert.ToDouble(reader[\"" + reader.GetName(i) + "\"]);");

    }

    }
    sb.AppendLine(
    "\t\t\t\t\tlist.Add(" + cboDataTable.Text.ToLower() + ");");
    sb.AppendLine(
    "\t\t\t\t}");
    sb.AppendLine(
    "\t\t\t\treturn list;");
    sb.AppendLine(
    "\t\t\t}");
    sb.AppendLine(
    "\t\t}\n\n");

                    //通过Id得到对象

    代码
    1 sb.AppendLine("\t\t///<summary>");
    2 sb.AppendLine("\t\t///得到" + cboDataTable.Text + "对象信息通过Id");
    3 sb.AppendLine("\t\t///<summary>");
    4 sb.AppendLine("\t\t///<param name=\"Id\"></param>");
    5 sb.AppendLine("\t\tpublic static "+cboDataTable.Text+" Get" + cboDataTable.Text + "ById(int Id)");
    6 sb.AppendLine("\t\t{");
    7 sb.AppendLine("\t\t\t sting sql=\"select * from " + cboDataTable.Text + " where Id=@Id;\"");
    8 sb.AppendLine("\t\t\t " + cboDataTable.Text + " " + cboDataTable.Text.ToLower() + "=null;");
    9 sb.AppendLine("\t\t\tSqlParameter[] pare = new SqlParameter[] ");
    10 sb.AppendLine("\t\t\t{");
    11 sb.AppendLine("\t\t\t\tnew SqlParameter(\"@Id\",Id)");
    12 sb.AppendLine("\t\t\t};");
    13 sb.AppendLine("\t\t\tusing (SqlDataReader reader = DBHelper.ExecuteReader(DBHelper.CONNSTRING, CommandType.Text, sql,pare)");
    14 sb.AppendLine("\t\t\t{");
    15 sb.AppendLine("\t\t\t\tif (reader.Read())");
    16 sb.AppendLine("\t\t\t\t{");
    17 sb.AppendLine("\t\t\t\t\t" + cboDataTable.Text.ToLower() + " = new " + cboDataTable.Text + "();");
    18 for (int i = 0; i < reader.FieldCount; i++)
    19 {
    20 if (reader.GetFieldType(i).ToString() == "System.Int32")
    21 {
    22 sb.AppendLine("\t\t\t\t\t" + cboDataTable.Text.ToLower() + "." + reader.GetName(i) + " = Convert.ToInt32(reader[\"" + reader.GetName(i) + "\"]);");
    23
    24 }
    25 else if (reader.GetFieldType(i).ToString() == "System.String")
    26 {
    27 sb.AppendLine("\t\t\t\t\t" + cboDataTable.Text.ToLower() + "." + reader.GetName(i) + " = reader[\"" + reader.GetName(i) + "\"].ToString();");
    28
    29 }
    30 else if (reader.GetFieldType(i).ToString() == "System.DateTime")
    31 {
    32 sb.AppendLine("\t\t\t\t\t" + cboDataTable.Text.ToLower() + "." + reader.GetName(i) + " = Convert.ToDateTime(reader[\"" + reader.GetName(i) + "\"]);");
    33
    34 }
    35 else if (reader.GetFieldType(i).ToString() == "System.Boolean")
    36 {
    37 sb.AppendLine("\t\t\t\t\t" + cboDataTable.Text.ToLower() + "." + reader.GetName(i) + " = Convert.ToBoolean(reader[\"" + reader.GetName(i) + "\"]);");
    38
    39 }
    40 else if (reader.GetFieldType(i).ToString() == "System.Byte[]")
    41 {
    42 sb.AppendLine("\t\t\t\t\t" + cboDataTable.Text.ToLower() + "." + reader.GetName(i) + " = Convert.ToByte(reader[\"" + reader.GetName(i) + "\"]);");
    43
    44 }
    45 else if (reader.GetFieldType(i).ToString() == "System.Double")
    46 {
    47 sb.AppendLine("\t\t\t\t\t" + cboDataTable.Text.ToLower() + "." + reader.GetName(i) + " = Convert.ToDouble(reader[\"" + reader.GetName(i) + "\"]);");
    48
    49 }
    50
    51
    52 }
    53 sb.AppendLine("\t\t\t\t}");
    54 sb.AppendLine("\t\t\t\treturn " + cboDataTable.Text.ToLower() + ";");
    55 sb.AppendLine("\t\t\t}");
    56 sb.AppendLine("\t\t}");
    57 //更改
    58   sb.AppendLine("\t\t///<summary>");
    59 sb.AppendLine("\t\t///更改" + cboDataTable.Text + "信息通过Id");
    60 sb.AppendLine("\t\t///<summary>");
    61 sb.AppendLine("\t\t///<param name=\""+cboDataTable.Text+"\"></param>");
    62 sb.AppendLine("\t\tpublic static int Update" + cboDataTable.Text + "ById("+cboDataTable.Text+" "+cboDataTable.Text.ToLower()+")");
    63 sb.AppendLine("\t\t{");
    64 sb.Append("\t\t\tstring sql =\"update " + cboDataTable.Text + " set "+reader.GetName(1)+"=@"+reader.GetName(1));
    65 for (int i = 2; i < reader.FieldCount; i++)
    66 {
    67 sb.Append(","+reader.GetName(i)+"=@"+reader.GetName(i));
    68 }
    69 sb.AppendLine(" where Id=@Id;");
    70 sb.AppendLine("\t\t\tSqlParameter[] pare = new SqlParameter[] ");
    71 sb.AppendLine("\t\t\t{");
    72 for (int i = 0; i < reader.FieldCount; i++)
    73 {
    74 sb.AppendLine("\t\t\t\tnew SqlParameter(\"@" + reader.GetName(i) + "\","+cboDataTable.Text.ToLower()+"."+reader.GetName(i)+"),");
    75 }
    76 sb.AppendLine("\t\t\t};");
    77 sb.AppendLine("\t\t\treturn Convert.ToInt32(DBHelper.ExecuteNonQuery(DBHelper.CONNSTRING, CommandType.Text, sql, para));");
    78
    79 sb.AppendLine("\t\t}");
    80 //添加
    81 sb.AppendLine("\t\t///<summary>");
    82 sb.AppendLine("\t\t///添加" + cboDataTable.Text + "信息");
    83 sb.AppendLine("\t\t///<summary>");
    84 sb.AppendLine("\t\t///<param name=\"" + cboDataTable.Text + "\"></param>");
    85 sb.AppendLine("\t\tpublic static int Insert" + cboDataTable.Text + "(" + cboDataTable.Text +" "+cboDataTable.Text.ToLower()+")");
    86 sb.AppendLine("\t\t{");
    87 sb.Append("\t\t\tstring sql =\"Insert into " + cboDataTable.Text + " ( " + reader.GetName(1));
    88 for (int i = 2; i < reader.FieldCount; i++)
    89 {
    90 sb.Append("," + reader.GetName(i));
    91 }
    92 sb.Append(") values ( @"+reader.GetName(1)+"");
    93 for (int i = 2; i < reader.FieldCount; i++)
    94 {
    95 sb.Append(",@" + reader.GetName(i));
    96 }
    97 sb.AppendLine(");");
    98 sb.AppendLine("\t\t\tSqlParameter[] pare = new SqlParameter[] ");
    99 sb.AppendLine("\t\t\t{");
    100 for (int i = 1; i < reader.FieldCount; i++)
    101 {
    102 sb.AppendLine("\t\t\t\tnew SqlParameter(\"@" + reader.GetName(i) + "\"," + cboDataTable.Text.ToLower() + "." + reader.GetName(i) + "),");
    103 }
    104 sb.AppendLine("\t\t\t};");
    105 sb.AppendLine("\t\t\treturn Convert.ToInt32(DBHelper.ExecuteNonQuery(DBHelper.CONNSTRING, CommandType.Text, sql, para));");
    106
    107 sb.AppendLine("\t\t}");
    108
    109
    110

         //根据Id删除对象
          

    代码
    1 sb.AppendLine("\t\t///<summary>");
    2 sb.AppendLine("\t\t///删除" + cboDataTable.Text + "信息通过Id");
    3 sb.AppendLine("\t\t///<summary>");
    4 sb.AppendLine("\t\t///<param name=Id></param>");
    5 sb.AppendLine("\t\tpublic static int Delete" + cboDataTable.Text + "ById(int Id)");
    6 sb.AppendLine("\t\t{");
    7 sb.AppendLine("\t\t\t string sql =delete "+cboDataTable.Text+" where Id=@Id;");
    8 sb.AppendLine("\t\t\tSqlParameter[] pare = new SqlParameter[] ");
    9 sb.AppendLine("\t\t\t{");
    10 sb.AppendLine("\t\t\t\tnew SqlParameter(\"@Id\",Id)");
    11 sb.AppendLine("\t\t\t};");
    12 sb.AppendLine("\t\t\treturn Convert.ToInt32(DBHelper.ExecuteNonQuery(DBHelper.CONNSTRING, CommandType.Text, sql, para));");
    13 sb.AppendLine("\t\t}");
    14 //批量删除对象
    15   sb.AppendLine("\t\t///<summary>");
    16 sb.AppendLine("\t\t///删除" + cboDataTable.Text + "信息通过Id");
    17 sb.AppendLine("\t\t///<summary>");
    18 sb.AppendLine("\t\t///<param name=Id></param>");
    19 sb.AppendLine("\t\tpublic static int Delete" + cboDataTable.Text + "ById(string Id)");
    20 sb.AppendLine("\t\t{");
    21 sb.AppendLine("\t\t\t string sql =delete " + cboDataTable.Text + " where Id in (\"+Id+\");");
    22 sb.AppendLine("\t\t\treturn Convert.ToInt32(DBHelper.ExecuteNonQuery(DBHelper.CONNSTRING, CommandType.Text, sql, para));");
    23 sb.AppendLine("\t\t}");
    24 }
    25
    26 sb.AppendLine("\t}");
    27 sb.AppendLine("}");
    28
    29
    30 rtb.Text = sb.ToString();
    31
    32
    33  


            /// <summary>
            /// 生成业务逻辑层
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void btnBLL_Click(object sender, EventArgs e)
            {
                classNameLastTag = "Mananger";
                if (cboDataTable.Text == "")
                {
                    MessageBox.Show("请选择要生成的表");
                    return;
                }
            }
            /// <summary>
            /// 生成实体类

    代码
    1 /// </summary>
    2 /// <param name="sender"></param>
    3 /// <param name="e"></param>
    4  
    5 private void btnModule_Click(object sender, EventArgs e)
    6 {
    7 classNameLastTag = "";
    8 if (cboDataTable.Text == "")
    9 {
    10 MessageBox.Show("请选择要生成的表");
    11 return;
    12 }
    13 string sql = "SELECT * FROM " + cboDataTable.Text;
    14 StringBuilder sb = new StringBuilder();
    15 using (SqlDataReader reader = DBHelper.ExecuteReader(String.Format(DBHelper.CONNSTRING, cbbDateBaseName.Text), CommandType.Text, sql, null))
    16 {
    17 sb.AppendLine("using System;");
    18 sb.AppendLine("using System.Collections.Generic;");
    19 sb.AppendLine("using System.Linq;");
    20 sb.AppendLine("using System.Text;");
    21 sb.AppendLine("namespace " + cbbDateBaseName.Text + ".Model");
    22 sb.AppendLine("\t{");
    23 sb.AppendLine("\t \t[Serializable]");
    24 sb.AppendLine("\t\tpublic class " + cboDataTable.Text + "");
    25 sb.AppendLine("\t\t{");
    26 for (int i = 0; i < reader.FieldCount; i++)
    27 {
    28 sb.AppendLine("\t\t\tpublic " + reader.GetFieldType(i) + " " + reader.GetName(i) + " { get; set; }");
    29 }
    30 sb.AppendLine("\t\t}");
    31 sb.AppendLine("\t}");
    32 rtb.Text = sb.ToString();
    33 }
    34 }
    35 private void cbbDateBaseName_SelectedValueChanged(object sender, EventArgs e)
    36 {
    37 cboDataTable.Items.Clear();
    38 string sql = "SELECT Name FROM SysObjects Where XType='U'";
    39 using (SqlDataReader reader = DBHelper.ExecuteReader(String.Format(DBHelper.CONNSTRING, cbbDateBaseName.Text), CommandType.Text, sql, null))
    40 {
    41 while (reader.Read())
    42 {
    43 cboDataTable.Items.Add(reader["Name"].ToString());
    44 }
    45 }
    46 if (cboDataTable.Items.Count != 0)
    47 {
    48 cboDataTable.SelectedIndex = 0;
    49 }
    50 else
    51 {
    52 cboDataTable.Text = "";
    53 }
    54
    55
    56
    57 }
    58
    59  

    //生成cs类库文件

       private void btnUpload_Click(object sender, EventArgs e)
            {
                FolderDialog f = new FolderDialog();
                if (f.DisplayDialog() != DialogResult.OK)
                {
                    return;
                }
                else
                {
                    try
                    {
                        FileStream nFile = new FileStream(f.Path + "" + cboDataTable.Text + classNameLastTag + ".cs", FileMode.CreateNew);
                        StreamWriter writer = new StreamWriter(nFile);
                        writer.WriteLine(rtb.Text);
                        writer.Close();
                        MessageBox.Show("类库生成成功!!!");
    
                    }
                    catch
                    {
                        MessageBox.Show("出错了");
                    }
    
    
                }
    
    
            }
    
    
    


                      private void cbbDateBaseName_SelectedIndexChanged(object sender, EventArgs e)
            {
                cboDataTable.Items.Clear();

                string sql = "SELECT Name FROM SysObjects Where XType='U'";
                using (SqlDataReader reader = DBHelper.ExecuteReader(String.Format(DBHelper.CONNSTRING, cbbDateBaseName.Text), CommandType.Text, sql, null))
                {
                    while (reader.Read())
                    {
                        cboDataTable.Items.Add(reader["Name"].ToString());
                    }
                }
                if (cboDataTable.Items.Count != 0)
                {
                    cboDataTable.SelectedIndex = 0;
                }
                else
                {
                    cboDataTable.Text = "";
                }

            }
        }

  • 相关阅读:
    Windows 编程入门,了解什么是UWP应用。
    java getway springcloud 记录请求数据
    nginx服务器配置传递给下一层的信息的一些参数-设置哪些跨域的域名可访问
    e.printStackTrace() 原理的分析
    关于性能测试组出现的问题查询和优化
    springboot connecting to :mongodb://127.0..0.1:27017/test authentication failed
    redis 集群 slots are covered by nodes.
    @PostConstruct +getapplicationcontext.getbean springboot获取getBean
    idea 错误: 找不到或无法加载主类 xx.xxx.Application
    elastic-job和spring cloud版本冲突2
  • 原文地址:https://www.cnblogs.com/waters/p/1907550.html
Copyright © 2011-2022 走看看