資源簡介
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個文件信息
- 上一篇:C#通過窗口名獲取程序所有控件句柄
- 下一篇:ASP.NETc#-學生選課系統
評論
共有 條評論