博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C# 连接SQLServer数据库自动生成model类代码
阅读量:5292 次
发布时间:2019-06-14

本文共 8502 字,大约阅读时间需要 28 分钟。

Program.cs

using System;using System.Collections.Generic;using System.Linq;using System.Threading.Tasks;using System.Windows.Forms;namespace ModelFactory{    static class Program    {        ///         /// 应用程序的主入口点。        ///         [STAThread]        static void Main()        {            Application.EnableVisualStyles();            Application.SetCompatibleTextRenderingDefault(false);            DBSelect dbs = new DBSelect();            dbs.ShowDialog();            TableSelect ts = new TableSelect();            ts.ShowDialog();            Application.Run(new ModelFactory());        }    }}

  

DataBase.cs

using System;using System.Collections.Generic;using System.Data;using System.Data.SqlClient;using System.Linq;using System.Text;using System.Threading.Tasks;namespace ModelFactory{    public static class DataBase    {        public static string DataSouse { get; set; }        public static string USER_ID { get; set; }        public static string PASSWORD { get; set; }        public static string database { get; set; }        private static string connectString{ get; set; }        public static List
tablenames = new List
(); public static void Init() { if (string.IsNullOrEmpty(DataBase.database)) DataBase.database = "master"; connectString = string.Format("DATA SOURCE={0};INITIAL CATALOG={1};USER ID={2};PASSWORD={3};", DataSouse, database, USER_ID, PASSWORD); } public static SqlConnection SqlOpen() { SqlConnection connection = null; try { connection = new SqlConnection(connectString); //connection.Open(); return connection; } catch { return connection; } } public static bool SqlClose(SqlConnection connection) { if (connection != null) { connection.Close(); return true; } else return false; } public static DataSet ProcSet(string commandstr) { // data.Clear(); DataSet data = new DataSet(); SqlConnection connection = SqlOpen(); SqlDataAdapter aCommand = new SqlDataAdapter(commandstr, connection); try { aCommand.SelectCommand.CommandTimeout = 120; connection.Open(); aCommand.Fill(data); SqlClose(connection); return data; } catch (Exception e) { return null; } finally { SqlClose(connection); } } public static int DoProc(string commandstr) { SqlConnection connection = SqlOpen(); SqlCommand sqlCom = new SqlCommand(commandstr, connection); sqlCom.CommandTimeout = 1200; try { connection.Open(); int x = Convert.ToInt32(sqlCom.ExecuteNonQuery()); SqlClose(connection); return x; } catch (Exception e) { return 0; } finally { SqlClose(connection); } } public static string ProcString(string commandstr) { SqlConnection connection = SqlOpen(); SqlCommand sqlCom = new SqlCommand(commandstr, connection); sqlCom.CommandTimeout = 600; string str = ""; try { connection.Open(); var obj = sqlCom.ExecuteScalar(); if (obj != null) str = obj.ToString(); return str; } catch (Exception e) { return ""; } finally { SqlClose(connection); } } public static void Add(string tablename) { tablenames.Add(tablename); } }}

  DBSelect

 

 

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;namespace ModelFactory{    public partial class DBSelect : Form    {        public DBSelect()        {            InitializeComponent();        }        private void textBox3_Leave(object sender, EventArgs e)        {            DataBase.DataSouse = textBox1.Text.Trim();            DataBase.USER_ID = textBox2.Text.Trim();            DataBase.PASSWORD = textBox3.Text.Trim();            DataBase.Init();            DataSet ds = DataBase.ProcSet("SELECT d.name,d.database_id FROM sys.databases AS d WHERE d.log_reuse_wait>0");                        comboBox1.DisplayMember = "name";            comboBox1.ValueMember = "database_id";            comboBox1.DataSource = ds.Tables[0];        }        private void button1_Click(object sender, EventArgs e)        {            DataBase.database = comboBox1.Text;            DataBase.Init();            this.Close();                               }        private void comboBox1_Enter(object sender, EventArgs e)        {            textBox3_Leave(sender, e);        }    }}

  TableSelect

 

 

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;namespace ModelFactory{    public partial class TableSelect : Form    {        public TableSelect()        {            InitializeComponent();            listBox2.DisplayMember = "name";            listBox2.ValueMember = "name";            listBox1.DataSource = DataBase.ProcSet("SELECT t.name FROM sys.tables AS t").Tables[0];            listBox1.DisplayMember = "name";            listBox1.ValueMember = "name";                    }        private void listBox1_DoubleClick(object sender, EventArgs e)        {            //listBox1.Items.Remove(listBox1.SelectedItem);            listBox2.Items.Add(listBox1.SelectedItem);        }        private void listBox2_DoubleClick(object sender, EventArgs e)        {            listBox2.Items.Remove(listBox2.SelectedItem);        }        private void button3_Click(object sender, EventArgs e)        {           foreach(System.Data.DataRowView row in listBox2.Items)           {               DataBase.Add(row.Row.ItemArray[0].ToString());           }           this.Close();        }             }}

  ModelFactory.cs

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;namespace ModelFactory{    public partial class ModelFactory : Form    {        private StringBuilder sb = new StringBuilder();        public ModelFactory()        {            InitializeComponent();            foreach (string tablename in DataBase.tablenames)            {                sb.AppendLine("    public class " + tablename);                sb.AppendLine("    {");                DataTable dt = DataBase.ProcSet("select top 1 * from " + tablename).Tables[0];                //DbType dbtype;                string dbtype,columnname;                                for (int i = 0; i < dt.Columns.Count;i++ )                {                    dbtype = CastType(dt.Columns[i].DataType);                    columnname = dt.Columns[i].ColumnName;                    sb.AppendLine("         public " + dbtype + " " + columnname+" {get;set;}");                }                sb.AppendLine("    }");            }            textBox1.Text = sb.ToString();        }        public string CastType(Type type)        {            if (type == typeof(string))            {                return "string";            }            else if (type == typeof(DateTime))            {                return "DateTime";            }            else if (type == typeof(bool))            {                return "bool";            }            else if (type == typeof(int))            {                return "int";            }            else            {                return type.ToString().Split('.')[type.ToString().Split('.').Length - 1];            }                     }    }}

  

转载于:https://www.cnblogs.com/zhouxiaojie/p/11512936.html

你可能感兴趣的文章
使用gitbash来链接mysql
查看>>
SecureCRT的使用方法和技巧(详细使用教程)
查看>>
右侧导航栏(动态添加数据到list)
查看>>
81、iOS本地推送与远程推送详解
查看>>
C#基础_注释和VS常用快捷键(一)
查看>>
虚拟DOM
查看>>
uva 11468 Substring
查看>>
自建数据源(RSO2)、及数据源增强
查看>>
BootStrap2学习日记2--将固定布局换成响应式布局
查看>>
关于View控件中的Context选择
查看>>
2018icpc徐州OnlineA Hard to prepare
查看>>
Spark的启动进程详解
查看>>
Java 字符终端上获取输入三种方式
查看>>
javascript 简单工厂
查看>>
java调用oracle存储过程,返回结果集
查看>>
使用命令创建数据库和表
查看>>
数据库的高级查询
查看>>
Android 利用Sharp样式设置文本框EditText圆角形状
查看>>
[YTU]_2443 ( C++习题 复数类--重载运算符3+)
查看>>
sdut_1189
查看>>