代码生成器

简介: 一.界面设计 二.具体代码 using System; using System.Collections.Generic; using System.ComponentModel; using System.

一.界面设计

image

二.具体代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace 代码生成器1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void btnLink_Click(object sender, EventArgs e)
        {
            string sql = "select * from INFORMATION_SCHEMA.TABLES";
            DataTable dt = ExecuteDatatable(sql);
            foreach (DataRow row in dt.Rows)
            {
                string tableName = (string)row["TABLE_NAME"];
                clbDatabase.Items.Add(tableName);
 
            }
          
        }
        private static string constr = ConfigurationManager.ConnectionStrings["dbconstr"].ConnectionString;
        #region 数据库链接
        private DataTable ExecuteDatatable(string sql, params SqlParameter[] parameters)
        {
            using (SqlConnection conn = new SqlConnection(constr))
            {
                conn.Open();
                using (SqlCommand cmd = conn.CreateCommand())
                {
                    cmd.CommandText = sql;
                    cmd.Parameters.AddRange(parameters);
                    SqlDataAdapter adapter = new SqlDataAdapter(cmd);
                    DataSet dataset = new DataSet();
                    adapter.Fill(dataset);
                    return dataset.Tables[0];
                }
            }
        }
        #endregion
        #region 代码生成
        private void btnGenerate_Click(object sender, EventArgs e)
        {
            string sql = "select * from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME=@tabel";
            foreach (string tablename in clbDatabase.CheckedItems)
            {
                DataTable dt = ExecuteDatatable(sql,
                     new SqlParameter("@tabel", tablename));
                //MessageBox.Show(dt.TableName.ToString());
                StringBuilder sb = new StringBuilder();
                sb.AppendLine("Class " + tablename);
                sb.AppendLine("{");

                foreach (DataRow row in dt.Rows)
                {
                    string dataType = ToVSType((string)row["DATA_TYPE"]);
                    string dataName = (string)row["COLUMN_NAME"];
                    sb.AppendLine("public " + dataType + " " + dataName + " {get;set;}");
                }
                sb.AppendLine("}");
                MessageBox.Show(sb.ToString());


            }

        }
        #endregion
        //数据库数据类型向VS转换
        private string ToVSType(string dataType)
        {
            switch (dataType)
            {
                case "int":
                    return "int";
                    //break;
                case "nchar":
                case "text":
                    return "string";
                    //break;
                case "bit":
                    return "bool";
                    //break;
                case "DateTime":
                    return "datetime";
                    //break;
                default :
                    return "object";

                   
            }
        }

    }
}

目录
相关文章
|
Java 数据库连接 数据库
MyBatis-Plus——逆向工程之AutoGenerator代码生成器
MyBatis-Plus——逆向工程之AutoGenerator代码生成器
MyBatis-Plus——逆向工程之AutoGenerator代码生成器
|
SQL XML Java
MyBatis-Plus——代码生成器(3.5.1+版本)
MyBatis-Plus——代码生成器(3.5.1+版本)
1434 0
MyBatis-Plus——代码生成器(3.5.1+版本)
|
1月前
|
XML Java 数据库连接
MyBatis代码生成器
MyBatis代码生成器
|
1月前
|
SQL 资源调度 Java
mybatis-plus代码生成器的UI界面使用非常方便
mybatis-plus代码生成器的UI界面使用非常方便
37 0
|
9月前
|
算法 Java 数据库
mybatis-plus代码生成器生成
mybatis-plus代码生成器生成
78 0
|
6月前
|
关系型数据库 MySQL
mybatis-plus代码生成器
mybatis-plus代码生成器
36 0
|
12月前
|
SQL JavaScript 数据可视化
MyBatis-Plus 可视化代码生成器来啦,让你的开发效率大大提速!!
MyBatis-Plus 可视化代码生成器来啦,让你的开发效率大大提速!!
|
Java 关系型数据库 MySQL
逆向工程-MyBatis代码生成器!
阿辉学Java第五个月(2021年三月中旬开始java之旅) SpringBoot 工程下使用 Mybatis 反向工程 拷贝 Mybatis 反向工程配置文件到项目的根目录下
121 0
逆向工程-MyBatis代码生成器!
|
XML Oracle Java
Mybatis3逆向工程,代码生成器的使用!
Mybatis3逆向工程,代码生成器的使用!
283 0
Mybatis3逆向工程,代码生成器的使用!