zoukankan      html  css  js  c++  java
  • 代码生成器

    一.界面设计

    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";

                       
                }
            }

        }
    }

  • 相关阅读:
    Cookie中的HttpOnly详解
    垃圾收集器Serial 、Parallel、CMS、G1
    Spring中ApplicationContextAware的用法
    Java IO包装流如何关闭
    Oracle数据库只读事务和无事务的区别
    protobuf和thrift对比
    Google的SPDY协议成为HTTP 2.0的基础
    在tomcat7中启用HTTPS的详细配置
    实现Spring RESTful服务的SSL
    大型网站的 HTTPS 实践(一)—— HTTPS 协议和原理
  • 原文地址:https://www.cnblogs.com/shangguanjinwen/p/3700834.html
Copyright © 2011-2022 走看看