资源简介

C#三层架构代码生成器【完美缩进】【优化版】 之前上传了一个代码生成器,没想到下载量还挺大的,所以这次做了一些小优化,主要是给代码加了更多注释,并进行了一定的整理,界面也做了些调整,另外附上了DAL层代码中用到类SqlHelper,让大家使用或阅读起来更方便~

资源截图

代码片段和文件信息

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using System.Data;
using System.IO;

namespace CodeGenerator
{
    /// 
    /// 代码生成器类
    /// 

    class Generator
    {
        #region 定义

        /// 
        /// 查询指定表的所有列信息SQL语句
        /// 

        private readonly static string SELECT_COLS_BY_TABLE = “select * from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME=@tableName“;
        
        #endregion

        #region 公开方法

        /// 
        /// 执行SQL语句返回DataTable
        /// 

        /// 
        /// 
        /// 
        /// 
        public static DataTable ExecuteDataTable(string connStr string sqlStr params SqlParameter[] parameters)
        {
            using (SqlConnection conn = new SqlConnection(connStr))
            {
                conn.Open();
                using (SqlCommand cmd = conn.CreateCommand())
                {
                    cmd.CommandText = sqlStr;
                    cmd.Parameters.AddRange(parameters);
                    using (SqlDataAdapter adapter = new SqlDataAdapter(cmd))
                    {
                        DataTable dt = new DataTable();
                        adapter.Fill(dt);
                        return dt;
                    }
                }
            }
        }

        /// 
        /// 生成指定数据库表对应的Model代码
        /// 

        /// 数据库表名
        /// 
        public static void GenerateModel(string tableName GeneratorArgs args)
        {
            // 获取指定表的所有字段信息
            DataTable dtCols = ExecuteDataTable(args.ConnStr SELECT_COLS_BY_TABLE new SqlParameter(“tableName“ tableName));

            // 用于保存需要生成的代码
            StringBuilder sb = new StringBuilder();

            #region 生成类文件头部内容
            sb.AppendLine(“using System;“);
            sb.AppendLine(“using System.Collections.Generic;“);
            sb.AppendLine(“using System.Linq;“);
            sb.AppendLine(“using System.Text;“ + “\r\n“);

            sb.AppendLine(“namespace “ + args.Namespace + “.Model“);
            sb.AppendLine(“{“);
            sb.AppendLine(“\t“ + “public partial class “ + tableName);
            sb.AppendLine(“\t“ + “{“);
            #endregion

            #region 生成Model中的各属性
            foreach (DataRow row in dtCols.Rows)
            {
                string colName = Convert.ToString(row[“Column_Name“]);
                string dataType = Convert.ToString(row[“Data_Type“]);

                // 获取数据类型
                Type dotnetType = GetTypeByDBType(dataType);

                #region 处理可空类型
                string dotnetTypeName;
                if (dotnetType.IsValueType)
          

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2013-08-08 13:46  CodeGenerator【代码优化版】\
     目录           0  2013-08-08 13:46  CodeGenerator【代码优化版】\CodeGenerator\
     目录           0  2013-08-08 13:33  CodeGenerator【代码优化版】\CodeGenerator\CodeGenerator\
     文件         929  2013-03-12 11:45  CodeGenerator【代码优化版】\CodeGenerator\CodeGenerator.sln
     文件       22528  2013-08-08 13:33  CodeGenerator【代码优化版】\CodeGenerator\CodeGenerator.suo
     目录           0  2013-08-08 11:41  CodeGenerator【代码优化版】\CodeGenerator\CodeGenerator\bin\
     目录           0  2013-08-08 12:47  CodeGenerator【代码优化版】\CodeGenerator\CodeGenerator\bin\Debug\
     文件       24064  2013-08-08 13:33  CodeGenerator【代码优化版】\CodeGenerator\CodeGenerator\bin\Debug\CodeGenerator.exe
     文件       38400  2013-08-08 13:33  CodeGenerator【代码优化版】\CodeGenerator\CodeGenerator\bin\Debug\CodeGenerator.pdb
     文件       14328  2013-08-08 13:33  CodeGenerator【代码优化版】\CodeGenerator\CodeGenerator\bin\Debug\CodeGenerator.vshost.exe
     文件        3836  2013-08-08 12:41  CodeGenerator【代码优化版】\CodeGenerator\CodeGenerator\CodeGenerator.csproj
     文件         168  2013-08-08 12:41  CodeGenerator【代码优化版】\CodeGenerator\CodeGenerator\CodeGenerator.csproj.user
     文件       17034  2013-08-08 13:09  CodeGenerator【代码优化版】\CodeGenerator\CodeGenerator\Generator.cs
     文件         817  2013-08-08 11:54  CodeGenerator【代码优化版】\CodeGenerator\CodeGenerator\GeneratorArgs.cs
     文件        3537  2013-08-08 13:33  CodeGenerator【代码优化版】\CodeGenerator\CodeGenerator\MainForm.cs
     文件       12759  2013-08-08 13:33  CodeGenerator【代码优化版】\CodeGenerator\CodeGenerator\MainForm.Designer.cs
     文件        6016  2013-08-08 13:33  CodeGenerator【代码优化版】\CodeGenerator\CodeGenerator\MainForm.resx
     目录           0  2013-03-12 11:45  CodeGenerator【代码优化版】\CodeGenerator\CodeGenerator\obj\
     目录           0  2013-08-08 13:33  CodeGenerator【代码优化版】\CodeGenerator\CodeGenerator\obj\Debug\
     文件        1907  2013-08-08 13:33  CodeGenerator【代码优化版】\CodeGenerator\CodeGenerator\obj\Debug\CodeGenerator.csproj.FileListAbsolute.txt
     文件         850  2013-08-08 13:33  CodeGenerator【代码优化版】\CodeGenerator\CodeGenerator\obj\Debug\CodeGenerator.csproj.GenerateResource.Cache
     文件       24064  2013-08-08 13:33  CodeGenerator【代码优化版】\CodeGenerator\CodeGenerator\obj\Debug\CodeGenerator.exe
     文件         180  2013-08-08 13:33  CodeGenerator【代码优化版】\CodeGenerator\CodeGenerator\obj\Debug\CodeGenerator.MainForm.resources
     文件       38400  2013-08-08 13:33  CodeGenerator【代码优化版】\CodeGenerator\CodeGenerator\obj\Debug\CodeGenerator.pdb
     文件         180  2013-08-08 12:41  CodeGenerator【代码优化版】\CodeGenerator\CodeGenerator\obj\Debug\CodeGenerator.Properties.Resources.resources
     目录           0  2013-03-12 11:45  CodeGenerator【代码优化版】\CodeGenerator\CodeGenerator\obj\Debug\Refactor\
     目录           0  2013-03-12 11:45  CodeGenerator【代码优化版】\CodeGenerator\CodeGenerator\obj\Debug\TempPE\
     文件         497  2013-03-12 11:45  CodeGenerator【代码优化版】\CodeGenerator\CodeGenerator\Program.cs
     目录           0  2013-03-12 11:45  CodeGenerator【代码优化版】\CodeGenerator\CodeGenerator\Properties\
     文件        1382  2013-03-12 11:45  CodeGenerator【代码优化版】\CodeGenerator\CodeGenerator\Properties\AssemblyInfo.cs
     文件        2876  2013-03-12 11:45  CodeGenerator【代码优化版】\CodeGenerator\CodeGenerator\Properties\Resources.Designer.cs
............此处省略5个文件信息

评论

共有 条评论