frmtbclasscreater.cs

来自「通过配置数据库连接并选择数据库表,可自动生成数据库表的实体类,并且实体类中包含记」· CS 代码 · 共 138 行

CS
138
字号
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using DBProvider;

namespace TableClassCreater
{
    public partial class frmTBClassCreater : Form
    {
        public frmTBClassCreater()
        {
            InitializeComponent();
        }

        private void frmTBClassCreater_Load(object sender, EventArgs e)
        {

        }

        private void cmdLink_Click(object sender, EventArgs e)
        {
            clsDB.ServerName = txtServer.Text;
            clsDB.DBName = txtDB.Text;
            clsDB.UserName = txtUser.Text;
            clsDB.PassWord = txtPW.Text;
            DataTable dtbPlan = clsDB.GetData("select * from dtproperties where 1=0");
            //dtgTables.Columns.Add("名称", "名称");
            //dtgTables.Columns.Add("类型", "类型");
            //foreach (DataColumn colTmp in dtbPlan.Columns)
            //{
            //    dtgTables.Rows.Add(new object[] {colTmp.ColumnName,colTmp.DataType.ToString() });
            //}
            if (dtbPlan == null)
            {
                MessageBox.Show("连接失败.");
            }
            else
            {
                MessageBox.Show("已连接.");
            }

            lstTable.Items.Clear();

            DataTable dtbTables = clsDB.GetTables();
            //dtgTables.DataSource = dtbTables;
            foreach (DataRow rowTmp in dtbTables.Rows)
            {
                lstTable.Items.Add(rowTmp["Table_Name"]);
            }
        }

        private void cmdBrowse_Click(object sender, EventArgs e)
        {
            fbdOpen.ShowNewFolderButton = true;
            fbdOpen.ShowDialog();
            txtPath.Text = fbdOpen.SelectedPath;
        }

        private void lstTable_SelectedIndexChanged(object sender, EventArgs e)
        {
            clsDB.Connection.Open();
            DataTable dtbFields = clsDB.Connection.GetSchema("Columns",new string[] {null,null,lstTable.Text});
            clsDB.Connection.Close();
            //dtgTables.DataSource = dtbFields;
            lstKey.Items.Clear();
            foreach (DataRow rowTmp in dtbFields.Rows)
            {
                lstKey.Items.Add(rowTmp["Column_Name"]);
            }
        }

        private void cmdSel_Click(object sender, EventArgs e)
        {
            if (lstKey.SelectedItem == null || lstTable.SelectedItem == null)
            {
                MessageBox.Show("请先选择表与字段名");
                return;
            }

            dtgTables.Rows.Add(new object[] { lstTable.Text, lstKey.Text });
        }

        private void cmdRemove_Click(object sender, EventArgs e)
        {
            if (dtgTables.CurrentRow == null)
            {
                return;
            }
            if (dtgTables.CurrentRow.Index >= 0)
            {
                dtgTables.Rows.Remove(dtgTables.CurrentRow);
            }
        }

        private void cmdCreate_Click(object sender, EventArgs e)
        {
            if (txtPath.Text == "")
            {
                MessageBox.Show("请选择生成路径.");
                return;
            }

            if (dtgTables.Rows.Count == 0)
            {
                MessageBox.Show("请选择表与字段.");
                return;
            }

            if (txtNameSpace.Text == "")
            {
                MessageBox.Show("请输入命名空间.");
                return;
            }

            clsTableClassCreater clsCreater = new clsTableClassCreater();

            string strTable = "";
            string strKey = "";
            DataTable dtbFields = null;
            foreach (DataGridViewRow rowTmp in dtgTables.Rows)
            {
                strTable = rowTmp.Cells["表名"].Value.ToString();
                strKey = rowTmp.Cells["主键"].Value.ToString();
                clsDB.Connection.Open();
                dtbFields = clsDB.Connection.GetSchema("Columns", new string[] { null, null, strTable });
                clsDB.Connection.Close();
                clsCreater.CreateTableClass(strTable, strKey, txtNameSpace.Text, txtPath.Text, dtbFields);
            }
        }
    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?