/// <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); } }
/// <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; }
/// <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(); }