/// <summary>
        /// 数据库操作
        /// </summary>
        /// <returns></returns>
        bool ControlSql(bool isTest)
        {
            bool        b   = false;
            SqlTypeEmun ste = (SqlTypeEmun)cb_sqltype.SelectedValue;
            ObservableCollection <DatabaseModel> list = null;
            string connectionstring = null;

            if (ste == SqlTypeEmun.SqlServer)
            {
                m_sqlcontrol     = new SqlServerControl();
                connectionstring = string.Format("server={0};uid={1};pwd={2}",
                                                 text_server.Text,
                                                 text_uid.Text,
                                                 text_pwd.Password);
                list = m_sqlcontrol.TestLink(connectionstring);
            }
            if (list != null && connectionstring != null)
            {
                if (isTest)
                {
                    cb_database.ItemsSource = list;
                }
                else
                {
                    m_linkconfig.name             = text_server.Text;
                    m_linkconfig.connectionstring = connectionstring;
                    m_linkconfig.database         = (string)cb_database.SelectedValue;
                    m_linkconfig.type             = ste;
                }
                b = true;
            }
            return(b);
        }
Пример #2
0
        void SetTreeNodeTable(TreeNodeDatabase treenodedatabase)
        {
            ISqlControl sqlcontrol = treenodedatabase.sqlcontrol;
            DataTable   dt_table   = sqlcontrol.GetTableList(treenodedatabase.connectionstring, treenodedatabase.database);

            for (int i = 0; i < dt_table.Rows.Count; i++)
            {
                treenodedatabase.childer.Add(new TreeNodeTable()
                {
                    text             = dt_table.Rows[i]["name"].ToString(),
                    connectionstring = treenodedatabase.connectionstring,
                    database         = treenodedatabase.database,
                    table            = dt_table.Rows[i]["name"].ToString(),
                    sqlcontrol       = sqlcontrol
                });
            }
        }
Пример #3
0
        void SetTreeNodeDatabaseMenu(TreeView tree, TreeViewItem item)
        {
            TreeNodeDatabase treenodedatabase = (TreeNodeDatabase)tree.SelectedItem;
            ISqlControl      sqlcontrol       = treenodedatabase.sqlcontrol;
            ContextMenu      cm = new ContextMenu();

            MenuItem menu_generate = new MenuItem();

            menu_generate.Header = "生成Models";
            menu_generate.Click += delegate(object obj, RoutedEventArgs earg)
            {
                DataTable tables = sqlcontrol.GetTableList(treenodedatabase.connectionstring, treenodedatabase.database);
                text_content.Text  = sqlcontrol.GenerateModels(tables);
                text_content2.Text = sqlcontrol.GenerateModels2(tables);
            };
            cm.Items.Add(menu_generate);

            MenuItem menu_generategetlist = new MenuItem();

            menu_generategetlist.Header = "生成GetModelList";
            menu_generategetlist.Click += delegate(object obj, RoutedEventArgs earg)
            {
                DataTable tables  = sqlcontrol.GetTableList(treenodedatabase.connectionstring, treenodedatabase.database);
                DataTable columns = sqlcontrol.GetColumnList(treenodedatabase.connectionstring, treenodedatabase.database);
                text_content.Text  = sqlcontrol.GenerateGetModelList(tables, columns);
                text_content2.Text = text_content.Text;
            };
            cm.Items.Add(menu_generategetlist);

            cm.Items.Add(new Separator());

            MenuItem menu_generatefile = new MenuItem();

            menu_generatefile.Header = "生成Models类库";
            menu_generatefile.Click += delegate(object obj, RoutedEventArgs earg)
            {
                GenerateFile dialog = new GenerateFile();
                dialog.Tag   = treenodedatabase;
                dialog.Owner = this;
                dialog.ShowDialog();
            };
            cm.Items.Add(menu_generatefile);

            item.ContextMenu = cm;
        }
Пример #4
0
        void AddTreeNodeServer(LinkConfigModel linkconfig)
        {
            ISqlControl sqlcontrol = null;

            if (linkconfig.type == SqlTypeEmun.SqlServer)
            {
                sqlcontrol = new SqlServerControl();
            }
            m_treenodeserverlist.Add(new TreeNodeServer()
            {
                id               = linkconfig.id,
                text             = linkconfig.name,
                connectionstring = linkconfig.connectionstring,
                database         = linkconfig.database,
                type             = linkconfig.type,
                childer          = new ObservableCollection <TreeNodeDatabase>(),
                sqlcontrol       = sqlcontrol
            });
        }
Пример #5
0
        void SetTreeNodeTableMenu(TreeView tree, TreeViewItem item)
        {
            TreeNodeTable treenodetable = (TreeNodeTable)tree.SelectedItem;
            ISqlControl   sqlcontrol    = treenodetable.sqlcontrol;
            ContextMenu   cm            = new ContextMenu();

            MenuItem menu_generate = new MenuItem();

            menu_generate.Header = "生成Model";
            menu_generate.Click += delegate(object obj, RoutedEventArgs earg)
            {
                DataTable columns = sqlcontrol.GetColumnList(treenodetable.connectionstring, treenodetable.database, treenodetable.table);
                text_content.Text  = sqlcontrol.GenerateModel(columns, treenodetable.table);
                text_content2.Text = sqlcontrol.GenerateModel2(columns, treenodetable.table);
            };
            cm.Items.Add(menu_generate);

            item.ContextMenu = cm;
        }
Пример #6
0
        void SetTreeNodeDatabase(TreeNodeServer treenodeserver)
        {
            ISqlControl sqlcontrol  = treenodeserver.sqlcontrol;
            DataTable   dt_database = sqlcontrol.GetDatabaseList(treenodeserver.connectionstring, treenodeserver.database);

            for (int i = 0; i < dt_database.Rows.Count; i++)
            {
                TreeNodeDatabase treenodedatabase = new TreeNodeDatabase()
                {
                    text             = dt_database.Rows[i]["name"].ToString(),
                    connectionstring = treenodeserver.connectionstring,
                    database         = dt_database.Rows[i]["name"].ToString(),
                    childer          = new ObservableCollection <TreeNodeTable>(),
                    sqlcontrol       = sqlcontrol
                };
                treenodeserver.childer.Add(treenodedatabase);

                SetTreeNodeTable(treenodedatabase);
            }
        }
Пример #7
0
        private void but_ok_Click(object sender, RoutedEventArgs e)
        {
            TreeNodeDatabase treenodedatabase = (TreeNodeDatabase)this.Tag;
            ISqlControl      sqlcontrol       = treenodedatabase.sqlcontrol;

            DataTable tables  = sqlcontrol.GetTableList(treenodedatabase.connectionstring, treenodedatabase.database);
            DataTable columns = sqlcontrol.GetColumnList(treenodedatabase.connectionstring, treenodedatabase.database);
            List <Dictionary <string, object> > tablecolumnslist = new List <Dictionary <string, object> >();

            for (int i = 0; i < tables.Rows.Count; i++)
            {
                Dictionary <string, object> dic = new Dictionary <string, object>();
                DataTable tablecolumns          = columns.Clone();
                DataRow[] drarr = columns.Select().Where(a => (string)a["tablename"] == (string)tables.Rows[i]["name"]).ToArray();
                for (int j = 0; j < drarr.Length; j++)
                {
                    tablecolumns.Rows.Add(drarr[j].ItemArray);
                }
                dic["tablename"] = (string)tables.Rows[i]["name"];
                dic["columns"]   = tablecolumns;
                tablecolumnslist.Add(dic);
            }

            string modelspath = text_path.Text + "/Models";

            Directory.CreateDirectory(modelspath);
            using (StreamWriter sw = new StreamWriter(modelspath + "/Models.cs", false, Encoding.UTF8))
            {
                sw.Write(sqlcontrol.GenerateModels(tables));
            }
            for (int i = 0; i < tablecolumnslist.Count; i++)
            {
                using (StreamWriter sw = new StreamWriter(modelspath + "/" + tablecolumnslist[i]["tablename"] + ".cs", false, Encoding.UTF8))
                {
                    sw.Write(sqlcontrol.GenerateModel((DataTable)tablecolumnslist[i]["columns"], (string)tablecolumnslist[i]["tablename"]));
                }
            }
            using (StreamWriter sw = new StreamWriter(modelspath + "/GetModelList.cs", false, Encoding.UTF8))
            {
                sw.Write(sqlcontrol.GenerateGetModelList(tables, columns));
            }

            string notifymodelspath = text_path.Text + "/Notify Models";

            Directory.CreateDirectory(notifymodelspath);
            using (StreamWriter sw = new StreamWriter(notifymodelspath + "/Models.cs", false, Encoding.UTF8))
            {
                sw.Write(sqlcontrol.GenerateModels2(tables));
            }
            for (int i = 0; i < tablecolumnslist.Count; i++)
            {
                using (StreamWriter sw = new StreamWriter(notifymodelspath + "/" + tablecolumnslist[i]["tablename"] + ".cs", false, Encoding.UTF8))
                {
                    sw.Write(sqlcontrol.GenerateModel2((DataTable)tablecolumnslist[i]["columns"], (string)tablecolumnslist[i]["tablename"]));
                }
            }
            using (StreamWriter sw = new StreamWriter(notifymodelspath + "/GetModelList.cs", false, Encoding.UTF8))
            {
                sw.Write(sqlcontrol.GenerateGetModelList(tables, columns));
            }

            SystemError.Information("类库已成功生成");
            this.DialogResult = true;
        }