Example #1
0
        /// <summary>
        /// 导出Word
        /// </summary>
        /// <param name="fileName"></param>
        public void ExportWord(string fileName)
        {
            try
            {
                var tableNodeList = GetTreeNodeSelectedList();

                if (tableNodeList == null || !tableNodeList.Any())
                {
                    ShowBox("请选择导出的数据表");
                    return;
                }

                var dicList = new Dictionary <string, Tuple <string, List <Fields> > >();
                tableNodeList.ForEach(node =>
                {
                    var serversNode    = node.Parent.Parent.Parent;
                    var serversNodeTag = (TreeNodeTag)serversNode.Tag;
                    var servers        = (Servers)serversNodeTag.Tag;
                    var dataBaseName   = node.Parent.Parent.Text;
                    var tableName      = node.Text;
                    var fields         = new BLL_Database(servers.Type).GetFields(servers.Id, dataBaseName, tableName);
                    dicList.Add(tableName, Tuple.Create <string, List <Fields> >("", fields));
                });
                var b = NPOIWordHelper.Create(fileName, dicList);
                ShowBox(b ? "导出成功" : "导出失败");
            }
            catch (Exception ex)
            {
                ShowBox(ex.Message);
            }
        }
Example #2
0
        /// <summary>
        /// 代码生成
        /// </summary>
        /// <param name="target">生成目标</param>
        /// <param name="tmpFiles">模板文件</param>
        /// <param name="tableNodeList">表集合</param>
        private void GenerateCode(CodeGenTarget target, string[] tmpFiles, List <TreeNode> tableNodeList)
        {
            switch (target)
            {
            case CodeGenTarget.File:
                break;

            case CodeGenTarget.Directories:
                break;

            default:
                break;
            }
            if (tmpFiles.Length == 0)
            {
                MessageBox.Show("请选择模板");
                return;
            }

            tableNodeList.ForEach(node =>
            {
                var serversNode    = node.Parent.Parent.Parent;
                var serversNodeTag = (TreeNodeTag)serversNode.Tag;
                var servers        = (Servers)serversNodeTag.Tag;
                var dataBaseName   = node.Parent.Parent.Text;
                var tableName      = node.Text;

                //生成文件代码
                for (int j = 0; j < tmpFiles.Length; j++)
                {
                    var arr      = Path.GetFileNameWithoutExtension(tmpFiles[j]).Split('_');
                    var fileType = arr.Length < 2 ? "cs" : arr[1];//文件类型
                    var codeType = CommonHelper.GetCodeTypeName(fileType);

                    var fields = new BLL_Database(servers.Type).GetFields(servers.Id, dataBaseName, tableName);
                    var result = RazorEngineExtension.Parse <RazorPageModel>(tmpFiles[j], new RazorPageModel
                    {
                        TableName = tableName,
                        Fields    = fields
                    });

                    switch (target)
                    {
                    case CodeGenTarget.Directories:
                        string fileName = arr[0].ToUpper() + "_" + tableName + "." + fileType;
                        string filePath = Path.Combine(AppGlobalConfig.Intance.Config.FileSaveDirectory, fileName);
                        filePath.WriteAllText(result);
                        break;

                    default:
                        var formCode = new Form_Code(tableName + "_" + arr[0], result, codeType);
                        formCode.Show(Form_Main.Instance.dockPanel);
                        break;
                    }
                }
            });
        }
        private void btnTest_Click(object sender, EventArgs e)
        {
            this.btnTest.Enabled = false;

            var server = this.server.Text.Trim();
            var uid    = this.uid.Text.Trim();
            var pwd    = this.pwd.Text.Trim();

            var model = new Servers
            {
                Id     = CommonHelper.NewGuid,
                Name   = server,
                Type   = DatabaseType.SqlServer,
                Server = server,
                Uid    = uid,
                Pwd    = pwd
            };

            ServersHelper.AddServers(model);

            //var model = new ConfigServers
            //{
            //    Id = CommonHelper.NewGuid,
            //    Name = string.Format("{0}({1})", server, DatabaseType.SqlServer.ToString()),
            //    Type = DatabaseType.SqlServer.ToString(),
            //    Server = server,
            //    Uid = uid,
            //    Pwd = pwd,
            //};
            //ServersConfigClass.Instance.Add(model);

            string err;
            var    b = new BLL_Database(DatabaseType.SqlServer).TestDatabaseConnnection(model.Id, out err);

            if (!b)
            {
                MessageBox.Show(err, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            else
            {
                MessageBox.Show("连接成功", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                this.Close();
            }

            this.btnTest.Enabled = true;
        }
Example #4
0
        /// <summary>
        /// 加载下级节点
        /// </summary>
        private void AddNodes(bool isRefresh = false)
        {
            TreeNode selNode = treeViewLeft.SelectedNode;

            if (selNode == null)
            {
                return;
            }
            if (selNode.Nodes.Count > 0 && !isRefresh)
            {
                return;
            }

            selNode.Nodes.Clear();
            TreeNode rootNode = GetRoot(selNode);

            if (rootNode == null)
            {
                return;
            }

            TreeNodeTag rootNodeTag = (TreeNodeTag)rootNode.Tag;
            Servers     server      = (Servers)rootNodeTag.Tag;

            if (server == null)
            {
                return;
            }
            TreeNodeTag  treeNodeTag = (TreeNodeTag)selNode.Tag;;
            BLL_Database Database    = new BLL_Database(server.Type);
            string       msg;

            if (!Database.TestDatabaseConnnection(server.Id, out msg))
            {
                ShowBox(msg, "数据库连接失败");
                return;
            }

            switch (treeNodeTag.Type)
            {
                #region  务器加载数据库
            case TreeNodeType.ServerNode:
                var dbs = Database.GetDatabases(server.Id);
                foreach (var db in dbs)
                {
                    TreeNode dbNode = new TreeNode();
                    dbNode.Name               = db;
                    dbNode.Text               = db;
                    dbNode.ImageIndex         = 1;
                    dbNode.SelectedImageIndex = 1;
                    dbNode.Tag = new Model.TreeNodeTag()
                    {
                        Type = TreeNodeType.DataBaseNode, Tag = db
                    };
                    selNode.Nodes.Add(dbNode);
                }
                break;
                #endregion

                #region 数据库加载表
            case TreeNodeType.DataBaseNode:     //数据库加载表

                TreeNode tblNode = new TreeNode();
                tblNode.Name = "表";
                tblNode.Text = "表";
                tblNode.Tag  = new Model.TreeNodeTag()
                {
                    Type = TreeNodeType.TableNode, Tag = treeNodeTag.Tag.ToString()
                };
                tblNode.ImageIndex         = 4;
                tblNode.SelectedImageIndex = 4;
                selNode.Nodes.Add(tblNode);


                //添加视图节点
                TreeNode viewNode = new TreeNode();
                viewNode.Name = "视图";
                viewNode.Text = "视图";
                viewNode.Tag  = new Model.TreeNodeTag()
                {
                    Type = TreeNodeType.ViewNode, Tag = treeNodeTag.Tag.ToString()
                };
                viewNode.ImageIndex         = 4;
                viewNode.SelectedImageIndex = 4;
                selNode.Nodes.Add(viewNode);

                break;
                #endregion

                #region 表节点加载表
            case TreeNodeType.TableNode:     //表节点加载表
                var tables = Database.GetTables(server.Id, treeNodeTag.Tag.ToString());
                foreach (var table in tables)
                {
                    TreeNode tblNode1 = new TreeNode();
                    tblNode1.Name               = table.Name;
                    tblNode1.Text               = table.Name;
                    tblNode1.ImageIndex         = 2;
                    tblNode1.SelectedImageIndex = 2;
                    tblNode1.Tag = new Model.TreeNodeTag()
                    {
                        Type = TreeNodeType.Table, Tag = table.Name
                    };
                    selNode.Nodes.Add(tblNode1);
                }
                break;
                #endregion

                #region 表加载字段
            case TreeNodeType.Table:     //表加载字段
                var fields = Database.GetFields(server.Id, ((TreeNodeTag)selNode.Parent.Tag).Tag.ToString(), ((TreeNodeTag)selNode.Tag).Tag.ToString());
                foreach (var field in fields)
                {
                    TreeNode fldNode = new TreeNode();
                    fldNode.Name               = field.Name;
                    fldNode.Text               = string.Format("{0}({1}{2},{3})", field.Name, field.Type, field.Length != -1 ? "(" + field.Length.ToString() + ")" : "", field.IsNull ? "null" : "not null");
                    fldNode.ImageIndex         = field.IsPrimaryKey ? 5 : 3;
                    fldNode.SelectedImageIndex = field.IsPrimaryKey ? 5 : 3;
                    fldNode.Tag = new Model.TreeNodeTag()
                    {
                        Type = TreeNodeType.Field, Tag = field
                    };
                    selNode.Nodes.Add(fldNode);
                }

                new Form_TableDetail(selNode.Text, fields).AddDockPannel(Form_Main.Instance.dockPanel);

                break;
                #endregion

            default:
                break;
            }
            selNode.Expand();
        }