自己写代码生成器之生成Model层(获取数据库所有表名称)
来源:互联网 发布:蚁群算法基本流程图 编辑:程序博客网 时间:2024/05/08 20:13
--得到数据库birthday所有表名称
select name from sysobjects where [type]='U'
--select [TABLE_NAME] from INFORMATION_SCHEMA.TABLES where [TABLE_TYPE]='BASE TABLE'
--获取列信息,不获取数据
select top 0 * from userInfo
思路:拼接字符串
public Index() { InitializeComponent(); } /// <summary> /// 加载 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Index_Load(object sender, EventArgs e) { string sql = "select [TABLE_NAME] from INFORMATION_SCHEMA.TABLES where [TABLE_TYPE]='BASE TABLE'"; DataTable data = SqlHelper.ExeccutDataTable(sql); if (data.Rows.Count > 0) { this.cmb_tableName.Items.Clear(); foreach (DataRow row in data.Rows) { string name = row["TABLE_NAME"].ToString(); this.cmb_tableName.Items.Add(name); } this.cmb_tableName.SelectedIndex = 0; } } /// <summary> /// 生成代码 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btn_generate_Click(object sender, EventArgs e) { string tableName = this.cmb_tableName.SelectedItem.ToString(); string sql = "select top 0 * from " + tableName; DataTable data = SqlHelper.ExeccutDataTable(sql); ///生成model层代码 GenerateModelCode(tableName, data); } #region Model /// <summary> /// 生成model层代码 /// </summary> /// <param name="tableName">表名称</param> /// <param name="data">数据源</param> private void GenerateModelCode(string tableName, DataTable data) { StringBuilder str = new StringBuilder(); //引用信息 str.AppendLine("using System;"); str.AppendLine("using System.Collections.Generic;"); str.AppendLine("using System.Linq;"); str.AppendLine("using System.Text;"); str.AppendLine("\r"); //命名空间 str.AppendLine("namespace AutoCodeKldder"); str.AppendLine("{"); //注释信息 str.AppendLine("\t/// <summary>"); str.AppendLine("\t/// " + tableName); str.AppendLine("\t/// <summary>"); str.AppendLine("\t[Serializable]"); str.AppendLine("\tpublic class " + tableName); str.AppendLine("\t{"); str.AppendLine("\t\t#region 类块"); int idx = 0; foreach (DataColumn dc in data.Columns) { //类型 string _type = dc.DataType.ToString(); //字段名称 string _name = dc.ColumnName; //是否为空 if (dc.AllowDBNull && dc.DataType.IsValueType) { _type += "?"; } if (idx != 0) { str.AppendLine("\r"); } str.AppendLine("\t\tprivate " + _type + " _" + _name + ";"); str.AppendLine("\t\t/// <summary>"); str.AppendLine("\t\t/// " + _name + ""); str.AppendLine("\t\t/// </summary>"); str.AppendLine("\t\tpublic " + _type + " " + _name + ""); str.AppendLine("\t\t{"); str.AppendLine("\t\t\tget { return _" + _name + "; }"); str.AppendLine("\t\t\tset { _" + _name + " = value; }"); str.AppendLine("\t\t}"); idx++; } str.AppendLine("\t\t#endregion"); str.AppendLine("\t}"); str.AppendLine("}"); this.txt_modelcode.Text = str.ToString().Trim(); } #endregion
- 自己写代码生成器之生成Model层(获取数据库所有表名称)
- 自己写代码生成器之生成Dal层代码(获取数据库所有表名称)
- [C#]一步一步开发自己的自动代码生成工具之四:简单三层代码模板实例Model层
- 自己写的代码生成器
- php获取数据库所有表名称
- 使用CodeSmith生成oracle数据库表的实体层(Model)
- 使用CodeSmith生成oracle数据库表的实体层(Model)
- Model层生成各数据库表之间的关系
- 尝试着写自己的代码生成器
- SQLSERVER获取数据库中的所有表的名称、表中所有字段的名称
- (1).net c# 一步一步自己写三层代码生成器(主界面及连接数据库界面)
- c#获取数据库中所有表名称的方法
- 获取数据库所有表及其字段名称、类型、长度
- 获取数据库所有表及其字段名称、类型、长度
- 根据数据库名获取所有表及视图名称
- c#获取数据库中所有表名称的方法
- vb获取数据库中所有表的名称
- 如何获取数据库中所有表的名称
- 将war文件配置成网页
- vTiger 5.4.0 从远程服务器下载源代码的安装方式
- SOS
- HDU1099-概率论题
- xcode的环境变量,Build Settings参数,workspace及联编设置
- 自己写代码生成器之生成Model层(获取数据库所有表名称)
- Heap size 3059K exceeds notification threshold (2048K)
- js 时间倒计时
- Win7环境下VS2010配置Cocos2d-x-2.1.4最新版本
- jquerymobile官方学习目录
- 数据类型(C#)
- hdu 4691 lcp最长公共前缀 后缀数组经典模板
- 今天遇到了一个form表单的问题
- ViewTreeObservice