⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frmtbclasscreater.cs

📁 通过配置数据库连接并选择数据库表,可自动生成数据库表的实体类,并且实体类中包含记录集合,可在类中对各记录集合进行修改后一次性提交保存,支持事务.
💻 CS
字号:
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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -