From 770bee2ae17c6ee8b67bfbcdab199619d5fb0d89 Mon Sep 17 00:00:00 2001 From: BaoZhen Long <398187372@qq.com> Date: Thu, 18 Aug 2022 11:43:27 +0800 Subject: [PATCH 1/3] =?UTF-8?q?Oracle=E9=83=A8=E5=88=86=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=EF=BC=8C=E5=AF=BC=E5=87=BA=E9=81=8D=E5=8E=86=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Exporter/OracleExporter.cs | 14 +-- .../SmartSQL.Framework.csproj | 1 + .../Util/ConnectionStringUtil.cs | 2 +- .../Util/OracleDbTypeMapHelper.cs | 58 ++++++++++ SmartSQL/SmartSQL/MainWindow.xaml | 4 +- SmartSQL/SmartSQL/Views/ConnectManage.xaml.cs | 8 ++ SmartSQL/SmartSQL/Views/ExportDoc.xaml.cs | 101 ++++++++---------- 7 files changed, 121 insertions(+), 67 deletions(-) create mode 100644 SmartSQL/SmartSQL.Framework/Util/OracleDbTypeMapHelper.cs diff --git a/SmartSQL/SmartSQL.Framework/Exporter/OracleExporter.cs b/SmartSQL/SmartSQL.Framework/Exporter/OracleExporter.cs index 0a4e362..1860e66 100644 --- a/SmartSQL/SmartSQL.Framework/Exporter/OracleExporter.cs +++ b/SmartSQL/SmartSQL.Framework/Exporter/OracleExporter.cs @@ -10,27 +10,29 @@ namespace SmartSQL.Framework.Exporter { public class OracleExporter : Exporter, IExporter { + private IDbMaintenance dbMaintenance; public OracleExporter(string connectionString) : base(connectionString) { - + dbMaintenance = SugarFactory.GetDbMaintenance(DbType.Oracle, connectionString); } public OracleExporter(string tableName, List columns) : base(tableName, columns) { } - + + /// /// 初始化 /// /// public override Model Init() { - var model = new Model { Database = "MySql" }; + var model = new Model { Database = "Oracle" }; try { model.Tables = this.GetTables(); model.Views = this.GetViews(); - model.Procedures = this.GetProcedures(); + model.Procedures = new Procedures(); return model; } catch (Exception ex) @@ -127,7 +129,7 @@ namespace SmartSQL.Framework.Exporter #region MyRegion var dbMaintenance = SugarFactory.GetDbMaintenance(DbType.Oracle, DbConnectString); var dbClient = SugarFactory.GetInstance(DbType.Oracle, DbConnectString); - var dataBaseList = dbMaintenance.GetDataBaseList(dbClient); + var dataBaseList = dbClient.Ado.SqlQuery("SELECT USERNAME FROM ALL_USERS ORDER BY USERNAME"); var list = new List(); dataBaseList.ForEach(dbName => { @@ -151,7 +153,6 @@ namespace SmartSQL.Framework.Exporter { #region MyRegion var columns = new Columns(500); - var dbMaintenance = SugarFactory.GetDbMaintenance(DbType.Oracle, DbConnectString); var viewList = dbMaintenance.GetColumnInfosByTableName(objectId); viewList.ForEach(v => { @@ -169,6 +170,7 @@ namespace SmartSQL.Framework.Exporter case "text": case "binary": case "varchar": + case "varchar2": case "nvarchar": case "varbinary": case "datetime2": diff --git a/SmartSQL/SmartSQL.Framework/SmartSQL.Framework.csproj b/SmartSQL/SmartSQL.Framework/SmartSQL.Framework.csproj index a5335e9..10a4a8c 100644 --- a/SmartSQL/SmartSQL.Framework/SmartSQL.Framework.csproj +++ b/SmartSQL/SmartSQL.Framework/SmartSQL.Framework.csproj @@ -233,6 +233,7 @@ + diff --git a/SmartSQL/SmartSQL.Framework/Util/ConnectionStringUtil.cs b/SmartSQL/SmartSQL.Framework/Util/ConnectionStringUtil.cs index 834b91f..44ba295 100644 --- a/SmartSQL/SmartSQL.Framework/Util/ConnectionStringUtil.cs +++ b/SmartSQL/SmartSQL.Framework/Util/ConnectionStringUtil.cs @@ -83,7 +83,7 @@ namespace SmartSQL.Framework.Util password={EncryptHelper.Decode(password)}; pooling=true; max pool size=2"; - return connectString; + return "Data Source=10.66.10.69/orcl;User ID=qms;Password=qms;"; } } } diff --git a/SmartSQL/SmartSQL.Framework/Util/OracleDbTypeMapHelper.cs b/SmartSQL/SmartSQL.Framework/Util/OracleDbTypeMapHelper.cs new file mode 100644 index 0000000..6fd1e9e --- /dev/null +++ b/SmartSQL/SmartSQL.Framework/Util/OracleDbTypeMapHelper.cs @@ -0,0 +1,58 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using SqlSugar; + +namespace SmartSQL.Framework.Util +{ + public class OracleDbTypeMapHelper + { + public static string MapCsharpType(string dbtype, bool isNullable) + { + if (string.IsNullOrEmpty(dbtype)) return dbtype; + dbtype = dbtype.ToLower(); + var csharpType = "object"; + switch (dbtype) + { + case "int": + case "mediumint": + case "integer": csharpType = isNullable ? "int?" : "int"; break; + case "varchar": + case "varchar2": + case "text": + case "char": + case "enum": + case "mediumtext": + case "tinytext": + case "longtext": csharpType = "string"; break; + case "tinyint": csharpType = isNullable ? "byte?" : "byte"; break; + case "smallint": csharpType = isNullable ? "short?" : "short"; break; + case "bigint": csharpType = isNullable ? "long?" : "long"; break; + case "bit": csharpType = isNullable ? "bool?" : "bool"; break; + case "real": + case "double": csharpType = isNullable ? "double?" : "double"; break; + case "float": csharpType = isNullable ? "float?" : "float"; break; + case "decimal": + case "numeric": csharpType = isNullable ? "decimal?" : "decimal"; break; + case "year": csharpType = isNullable ? "int?" : "int"; break; + case "datetime": + case "timestamp": + case "date": + case "time": csharpType = isNullable ? "DateTime?" : "DateTime"; break; + case "blob": + case "longblob": + case "tinyblob": + case "varbinary": + case "binary": + case "multipoint": + case "geometry": + case "multilinestring": + case "polygon": + case "mediumblob": csharpType = "byteArray"; break; + } + return csharpType; + } + } +} diff --git a/SmartSQL/SmartSQL/MainWindow.xaml b/SmartSQL/SmartSQL/MainWindow.xaml index 85bf9a4..e127b34 100644 --- a/SmartSQL/SmartSQL/MainWindow.xaml +++ b/SmartSQL/SmartSQL/MainWindow.xaml @@ -9,8 +9,8 @@ xmlns:svgc="http://sharpvectors.codeplex.com/svgc/" xmlns:userControl="clr-namespace:SmartSQL.UserControl" Title="SmartSQL" - Width="850" - Height="500" + Width="1200" + Height="1000" Icon="favicon.ico" Loaded="MainWindow_OnLoaded" ResizeMode="CanResize" diff --git a/SmartSQL/SmartSQL/Views/ConnectManage.xaml.cs b/SmartSQL/SmartSQL/Views/ConnectManage.xaml.cs index 736a423..d7e660f 100644 --- a/SmartSQL/SmartSQL/Views/ConnectManage.xaml.cs +++ b/SmartSQL/SmartSQL/Views/ConnectManage.xaml.cs @@ -184,6 +184,10 @@ namespace SmartSQL.Views if (MainContent is SqliteUC ucSqlite) { ucSqlite.SaveForm(isConnect); + } //Sqlite + if (MainContent is OracleUC ucOracleUC) + { + ucOracleUC.SaveForm(isConnect); } #endregion } @@ -283,6 +287,10 @@ namespace SmartSQL.Views if (MainContent is SqliteUC ucSqlite) { ucSqlite.TestConnect(true); + } //测试Sqlite + if (MainContent is OracleUC ucOracle) + { + ucOracle.TestConnect(true); } #endregion } diff --git a/SmartSQL/SmartSQL/Views/ExportDoc.xaml.cs b/SmartSQL/SmartSQL/Views/ExportDoc.xaml.cs index 5eb52d9..243c225 100644 --- a/SmartSQL/SmartSQL/Views/ExportDoc.xaml.cs +++ b/SmartSQL/SmartSQL/Views/ExportDoc.xaml.cs @@ -1,33 +1,27 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Diagnostics; -using System.IO; -using System.Linq; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; -using System.Text; -using System.Threading.Tasks; -using System.Windows; -using System.Windows.Controls; -using System.Windows.Controls.Primitives; -using System.Windows.Media; using HandyControl.Controls; using HandyControl.Data; -using Microsoft.Win32; using Microsoft.WindowsAPICodePack.Dialogs; using SmartSQL.Annotations; using SmartSQL.DocUtils; using SmartSQL.DocUtils.Dtos; using SmartSQL.Framework; using SmartSQL.Framework.Const; -using SmartSQL.Framework.Exporter; using SmartSQL.Framework.PhysicalDataModel; using SmartSQL.Framework.SqliteModel; using SmartSQL.Framework.Util; using SmartSQL.Helper; using SmartSQL.Models; using SqlSugar; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.IO; +using System.Linq; +using System.Runtime.CompilerServices; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Controls.Primitives; using DbType = SqlSugar.DbType; namespace SmartSQL.Views @@ -324,7 +318,7 @@ namespace SmartSQL.Views Type = InfoType.Error }); })); - } + } #endregion } @@ -1064,6 +1058,7 @@ namespace SmartSQL.Views { #region MyRegion var selectedConnectionString = selectedConnection.SelectedDbConnectString(selectedDatabase.DbName); + var dbInstance = ExporterFactory.CreateInstance(selectedConnection.DbType, selectedConnectionString); var tables = new List(); var groupNo = 1; foreach (var group in treeViewData) @@ -1071,11 +1066,11 @@ namespace SmartSQL.Views if (group.Type == "Type" && group.Name.Equals("treeTable")) { int orderNo = 1; - foreach (var node in group.Children) + group.Children.ForEach(node => { if (node.IsChecked == false) { - continue; + return; } TableDto tbDto = new TableDto(); tbDto.TableOrder = orderNo.ToString(); @@ -1083,40 +1078,36 @@ namespace SmartSQL.Views tbDto.Comment = node.Comment.FilterIllegalDir(); tbDto.DBType = nameof(DbType.SqlServer); - var lst_col_dto = new List(); - var dbInstance = ExporterFactory.CreateInstance(selectedConnection.DbType, - selectedConnectionString); + //var lst_col_dto = new List(); + var columns = dbInstance.GetColumnInfoById(node.ObejcetId); var columnIndex = 1; - foreach (var col in columns) + + tbDto.Columns = columns.Select(col => new ColumnDto() { - var colDto = new ColumnDto(); - colDto.ColumnOrder = columnIndex.ToString(); - colDto.ColumnName = col.Value.Name; + ColumnOrder = (columnIndex++).ToString(), + ColumnName = col.Value.Name, // 数据类型 - colDto.ColumnTypeName = col.Value.DataType; + ColumnTypeName = col.Value.DataType, // 长度 - colDto.Length = col.Value.LengthName; + Length = col.Value.LengthName, // 小数位 //colDto.Scale = "";//(col.Scale.HasValue ? col.Scale.Value.ToString() : ""); // 主键 - colDto.IsPK = col.Value.IsPrimaryKey ? "√" : ""; + IsPK = col.Value.IsPrimaryKey ? "√" : "", // 自增 - colDto.IsIdentity = col.Value.IsIdentity ? "√" : ""; + IsIdentity = col.Value.IsIdentity ? "√" : "", // 允许空 - colDto.CanNull = col.Value.IsNullable ? "√" : ""; + CanNull = col.Value.IsNullable ? "√" : "", // 默认值 - colDto.DefaultVal = !string.IsNullOrWhiteSpace(col.Value.DefaultValue) ? col.Value.DefaultValue : ""; + DefaultVal = !string.IsNullOrWhiteSpace(col.Value.DefaultValue) ? col.Value.DefaultValue : "", // 列注释(说明) - colDto.Comment = col.Value.Comment.FilterIllegalDir(); + Comment = col.Value.Comment.FilterIllegalDir() + }).ToList(); - lst_col_dto.Add(colDto); - columnIndex++; - } - tbDto.Columns = lst_col_dto; tables.Add(tbDto); orderNo++; - } + }); } if (group.Type == "Table") { @@ -1124,38 +1115,32 @@ namespace SmartSQL.Views tbDto.TableOrder = groupNo.ToString(); tbDto.TableName = group.Name; tbDto.Comment = group.Comment.FilterIllegalDir(); - tbDto.DBType = selectedConnection.DbType.ToString(); - - var lst_col_dto = new List(); - var dbInstance = ExporterFactory.CreateInstance(selectedConnection.DbType, - selectedConnectionString); + tbDto.DBType = selectedConnection.DbType.ToString(); var columns = dbInstance.GetColumnInfoById(group.ObejcetId); var columnIndex = 1; - foreach (var col in columns) + + tbDto.Columns = columns.Select(col => new ColumnDto() { - ColumnDto colDto = new ColumnDto(); - colDto.ColumnOrder = columnIndex.ToString(); - colDto.ColumnName = col.Value.Name; + ColumnOrder = (columnIndex++).ToString(), + ColumnName = col.Value.Name, // 数据类型 - colDto.ColumnTypeName = col.Value.DataType; + ColumnTypeName = col.Value.DataType, // 长度 - colDto.Length = col.Value.LengthName; + Length = col.Value.LengthName, // 小数位 //colDto.Scale = "";//(col.Scale.HasValue ? col.Scale.Value.ToString() : ""); // 主键 - colDto.IsPK = (col.Value.IsPrimaryKey ? "√" : ""); + IsPK = col.Value.IsPrimaryKey ? "√" : "", // 自增 - colDto.IsIdentity = (col.Value.IsIdentity ? "√" : ""); + IsIdentity = col.Value.IsIdentity ? "√" : "", // 允许空 - colDto.CanNull = (col.Value.IsNullable ? "√" : ""); + CanNull = col.Value.IsNullable ? "√" : "", // 默认值 - colDto.DefaultVal = (!string.IsNullOrWhiteSpace(col.Value.DefaultValue) ? col.Value.DefaultValue : ""); + DefaultVal = !string.IsNullOrWhiteSpace(col.Value.DefaultValue) ? col.Value.DefaultValue : "", // 列注释(说明) - colDto.Comment = col.Value.Comment.FilterIllegalDir(); - lst_col_dto.Add(colDto); - columnIndex++; - } - tbDto.Columns = lst_col_dto; + Comment = col.Value.Comment.FilterIllegalDir() + }).ToList(); + tables.Add(tbDto); groupNo++; } -- Gitee From 54c00f599ba7142f02cf3a8962a825841051eddc Mon Sep 17 00:00:00 2001 From: BaoZhen Long <398187372@qq.com> Date: Thu, 18 Aug 2022 15:33:18 +0800 Subject: [PATCH 2/3] =?UTF-8?q?dbMaintenance=E4=BB=A3=E7=A0=81=E7=AE=80?= =?UTF-8?q?=E5=8C=96=20Doc=E6=96=87=E6=A1=A3=E9=81=8D=E5=8E=86=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E7=AE=80=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SmartSQL.Framework/Exporter/Exporter.cs | 5 +- .../Exporter/MySqlExporter.cs | 4 +- .../Exporter/OracleExporter.cs | 22 ++--- .../Exporter/PostgreSqlExporter.cs | 6 +- .../Exporter/SqlServerExporter.cs | 10 +- .../Exporter/SqliteExporter.cs | 4 +- .../SmartSQL.Framework/ExporterFactory.cs | 12 +-- .../Util/ConnectionStringUtil.cs | 2 +- SmartSQL/SmartSQL/Views/ConnectManage.xaml.cs | 6 +- SmartSQL/SmartSQL/Views/ExportDoc.xaml.cs | 91 +++++++------------ 10 files changed, 68 insertions(+), 94 deletions(-) diff --git a/SmartSQL/SmartSQL.Framework/Exporter/Exporter.cs b/SmartSQL/SmartSQL.Framework/Exporter/Exporter.cs index 4778fbe..357808d 100644 --- a/SmartSQL/SmartSQL.Framework/Exporter/Exporter.cs +++ b/SmartSQL/SmartSQL.Framework/Exporter/Exporter.cs @@ -8,12 +8,15 @@ using SqlSugar; namespace SmartSQL.Framework.Exporter { using PhysicalDataModel; + using DbType = SqlSugar.DbType; public abstract class Exporter : IExporter { - public Exporter(string connectionString) + public IDbMaintenance dbMaintenance; + public Exporter(string connectionString,DbType dbType) { DbConnectString = connectionString; + dbMaintenance = SugarFactory.GetDbMaintenance(dbType, connectionString); } public Exporter(string tableName, List columns) diff --git a/SmartSQL/SmartSQL.Framework/Exporter/MySqlExporter.cs b/SmartSQL/SmartSQL.Framework/Exporter/MySqlExporter.cs index 0bbde13..9c97a7e 100644 --- a/SmartSQL/SmartSQL.Framework/Exporter/MySqlExporter.cs +++ b/SmartSQL/SmartSQL.Framework/Exporter/MySqlExporter.cs @@ -14,7 +14,7 @@ namespace SmartSQL.Framework.Exporter { public class MySqlExporter : Exporter, IExporter { - public MySqlExporter(string connectionString) : base(connectionString) + public MySqlExporter(string connectionString, DbType dbType) : base(connectionString, dbType) { } @@ -50,7 +50,7 @@ namespace SmartSQL.Framework.Exporter public override List GetDatabases(string defaultDatabase="") { #region MyRegion - var dbMaintenance = SugarFactory.GetDbMaintenance(DbType.MySql, DbConnectString); + // var dbMaintenance = SugarFactory.GetDbMaintenance(DbType.MySql, DbConnectString); var dbClient = SugarFactory.GetInstance(DbType.MySql, DbConnectString); var dataBaseList = dbMaintenance.GetDataBaseList(dbClient); var list = new List(); diff --git a/SmartSQL/SmartSQL.Framework/Exporter/OracleExporter.cs b/SmartSQL/SmartSQL.Framework/Exporter/OracleExporter.cs index 4ced7cd..561e6d4 100644 --- a/SmartSQL/SmartSQL.Framework/Exporter/OracleExporter.cs +++ b/SmartSQL/SmartSQL.Framework/Exporter/OracleExporter.cs @@ -10,10 +10,10 @@ namespace SmartSQL.Framework.Exporter { public class OracleExporter : Exporter, IExporter { - private IDbMaintenance dbMaintenance; - public OracleExporter(string connectionString) : base(connectionString) + + public OracleExporter(string connectionString,DbType dbType) : base(connectionString, dbType) { - dbMaintenance = SugarFactory.GetDbMaintenance(DbType.Oracle, connectionString); + } public OracleExporter(string tableName, List columns) : base(tableName, columns) { @@ -46,7 +46,6 @@ namespace SmartSQL.Framework.Exporter { #region MyRegion var tables = new Tables(); - var dbMaintenance = SugarFactory.GetDbMaintenance(DbType.Oracle, DbConnectString); var tableList = dbMaintenance.GetTableInfoList(false); tableList.ForEach(tb => { @@ -73,7 +72,6 @@ namespace SmartSQL.Framework.Exporter { #region MyRegion var views = new Views(); - var dbMaintenance = SugarFactory.GetDbMaintenance(DbType.Oracle, DbConnectString); var viewList = dbMaintenance.GetViewInfoList(false); viewList.ForEach(v => { @@ -100,7 +98,6 @@ namespace SmartSQL.Framework.Exporter { #region MyRegion var procDic = new Procedures(); - var dbMaintenance = SugarFactory.GetDbMaintenance(DbType.Oracle, DbConnectString); var procInfoList = dbMaintenance.GetProcInfoList(false); var dbName = dbMaintenance.Context.Ado.Connection.Database; var procList = procInfoList.Where(x => x.Schema == dbName).ToList(); @@ -129,18 +126,19 @@ namespace SmartSQL.Framework.Exporter public override List GetDatabases(string defaultDatabase = "") { #region MyRegion - var dbMaintenance = SugarFactory.GetDbMaintenance(DbType.Oracle, DbConnectString); var dbClient = SugarFactory.GetInstance(DbType.Oracle, DbConnectString); var dataBaseList = dbClient.Ado.SqlQuery("SELECT USERNAME FROM ALL_USERS ORDER BY USERNAME"); var list = new List(); dataBaseList.ForEach(dbName => { - new DataBase + var dBase = new DataBase { - DbName = defaultDatabase, - IsSelected = true - } - }; + DbName = dbName, + IsSelected = false + }; + list.Add(dBase); + }); + return list; #endregion } diff --git a/SmartSQL/SmartSQL.Framework/Exporter/PostgreSqlExporter.cs b/SmartSQL/SmartSQL.Framework/Exporter/PostgreSqlExporter.cs index 3664def..fec6643 100644 --- a/SmartSQL/SmartSQL.Framework/Exporter/PostgreSqlExporter.cs +++ b/SmartSQL/SmartSQL.Framework/Exporter/PostgreSqlExporter.cs @@ -11,7 +11,7 @@ namespace SmartSQL.Framework.Exporter { public class PostgreSqlExporter : Exporter, IExporter { - public PostgreSqlExporter(string connectionString) : base(connectionString) + public PostgreSqlExporter(string connectionString, DbType dbType) : base(connectionString, dbType) { } @@ -40,7 +40,7 @@ namespace SmartSQL.Framework.Exporter public override List GetDatabases(string defaultDatabase = "") { #region MyRegion - var dbMaintenance = SugarFactory.GetDbMaintenance(DbType.PostgreSQL, DbConnectString); + // var dbMaintenance = SugarFactory.GetDbMaintenance(DbType.PostgreSQL, DbConnectString); var dbClient = SugarFactory.GetInstance(DbType.PostgreSQL, DbConnectString); var dataBaseList = dbMaintenance.GetDataBaseList(dbClient); var list = new List(); @@ -150,7 +150,7 @@ namespace SmartSQL.Framework.Exporter { #region MyRegion var columns = new Columns(500); - var dbMaintenance = SugarFactory.GetDbMaintenance(DbType.PostgreSQL, DbConnectString); + // var dbMaintenance = SugarFactory.GetDbMaintenance(DbType.PostgreSQL, DbConnectString); var viewList = dbMaintenance.GetColumnInfosByTableName(objectId); viewList.ForEach(v => { diff --git a/SmartSQL/SmartSQL.Framework/Exporter/SqlServerExporter.cs b/SmartSQL/SmartSQL.Framework/Exporter/SqlServerExporter.cs index ad1e6e8..1396145 100644 --- a/SmartSQL/SmartSQL.Framework/Exporter/SqlServerExporter.cs +++ b/SmartSQL/SmartSQL.Framework/Exporter/SqlServerExporter.cs @@ -15,7 +15,7 @@ namespace SmartSQL.Framework.Exporter public class SqlServerExporter : Exporter, IExporter { - public SqlServerExporter(string connectionString) : base(connectionString) + public SqlServerExporter(string connectionString,DbType dbType) : base(connectionString, dbType) { } @@ -382,7 +382,7 @@ namespace SmartSQL.Framework.Exporter } objectId = tableInfo.Values.First().Id; } - var dbMaintenance = SugarFactory.GetDbMaintenance(DbType.SqlServer, DbConnectString); + // var dbMaintenance = SugarFactory.GetDbMaintenance(DbType.SqlServer, DbConnectString); var colList = dbMaintenance.GetColumnInfosByTableName(objectId); colList.ForEach(col => { @@ -434,7 +434,7 @@ namespace SmartSQL.Framework.Exporter /// public override string GetScriptInfoById(string objectId, DbObjectType objectType) { - var dbMaintenance = SugarFactory.GetDbMaintenance(DbType.SqlServer, DbConnectString); + // var dbMaintenance = SugarFactory.GetDbMaintenance(DbType.SqlServer, DbConnectString); var scriptInfo = dbMaintenance.GetScriptInfo(objectId, objectType); return scriptInfo.Definition; } @@ -448,7 +448,7 @@ namespace SmartSQL.Framework.Exporter public override bool UpdateObjectRemark(string objectName, string remark, DbObjectType objectType = DbObjectType.Table) { var result = false; - var dbMaintenance = SugarFactory.GetDbMaintenance(DbType.SqlServer, DbConnectString); + // var dbMaintenance = SugarFactory.GetDbMaintenance(DbType.SqlServer, DbConnectString); if (objectType == DbObjectType.Table) { result = dbMaintenance.AddTableRemark(objectName, remark); @@ -472,7 +472,7 @@ namespace SmartSQL.Framework.Exporter /// public override bool UpdateColumnRemark(Column columnInfo, string remark) { - var dbMaintenance = SugarFactory.GetDbMaintenance(DbType.SqlServer, DbConnectString); + // var dbMaintenance = SugarFactory.GetDbMaintenance(DbType.SqlServer, DbConnectString); var columnName = columnInfo.Name; var tableName = columnInfo.ObjectName; if (dbMaintenance.IsAnyColumnRemark(columnName, tableName)) diff --git a/SmartSQL/SmartSQL.Framework/Exporter/SqliteExporter.cs b/SmartSQL/SmartSQL.Framework/Exporter/SqliteExporter.cs index 2dce891..86535e1 100644 --- a/SmartSQL/SmartSQL.Framework/Exporter/SqliteExporter.cs +++ b/SmartSQL/SmartSQL.Framework/Exporter/SqliteExporter.cs @@ -16,7 +16,7 @@ namespace SmartSQL.Framework.Exporter /// public class SqliteExporter : Exporter, IExporter { - public SqliteExporter(string connectionString) : base(connectionString) + public SqliteExporter(string connectionString, DbType dbType) : base(connectionString, dbType) { } @@ -57,7 +57,7 @@ namespace SmartSQL.Framework.Exporter { #region MyRegion var columns = new Columns(500); - var dbMaintenance = SugarFactory.GetDbMaintenance(DbType.Sqlite, DbConnectString); + //var dbMaintenance = SugarFactory.GetDbMaintenance(DbType.Sqlite, DbConnectString); var viewList = dbMaintenance.GetColumnInfosByTableName(objectId); viewList.ForEach(v => { diff --git a/SmartSQL/SmartSQL.Framework/ExporterFactory.cs b/SmartSQL/SmartSQL.Framework/ExporterFactory.cs index f022c1e..dec8d93 100644 --- a/SmartSQL/SmartSQL.Framework/ExporterFactory.cs +++ b/SmartSQL/SmartSQL.Framework/ExporterFactory.cs @@ -18,12 +18,12 @@ namespace SmartSQL.Framework { switch (type) { - case DbType.SqlServer: return new SqlServerExporter(dbConnectionString); - case DbType.MySql: return new MySqlExporter(dbConnectionString); - case DbType.PostgreSQL: return new PostgreSqlExporter(dbConnectionString); - case DbType.Sqlite: return new SqliteExporter(dbConnectionString); - case DbType.Oracle: return new OracleExporter(dbConnectionString); - default: return new SqlServerExporter(dbConnectionString); + case DbType.SqlServer: return new SqlServerExporter(dbConnectionString, type); + case DbType.MySql: return new MySqlExporter(dbConnectionString, type); + case DbType.PostgreSQL: return new PostgreSqlExporter(dbConnectionString, type); + case DbType.Sqlite: return new SqliteExporter(dbConnectionString, type); + case DbType.Oracle: return new OracleExporter(dbConnectionString, type); + default: return new SqlServerExporter(dbConnectionString, type); } } public static Exporter.Exporter CreateInstance(DbType type, string tableName, List columns) diff --git a/SmartSQL/SmartSQL.Framework/Util/ConnectionStringUtil.cs b/SmartSQL/SmartSQL.Framework/Util/ConnectionStringUtil.cs index b675378..aeacd41 100644 --- a/SmartSQL/SmartSQL.Framework/Util/ConnectionStringUtil.cs +++ b/SmartSQL/SmartSQL.Framework/Util/ConnectionStringUtil.cs @@ -87,7 +87,7 @@ namespace SmartSQL.Framework.Util public static string OracleString(string serverAddress, int port, string serviceName, string userName, string password) { var connectString = $@"Data Source={serverAddress}:{port}/{serviceName};User ID={userName};Password={EncryptHelper.Decode(password)};Pooling=False;"; - return connectString; + return "Data Source=10.66.10.63/orcl;User ID=qms;Password=qms;"; } } } diff --git a/SmartSQL/SmartSQL/Views/ConnectManage.xaml.cs b/SmartSQL/SmartSQL/Views/ConnectManage.xaml.cs index a1e28d3..479013e 100644 --- a/SmartSQL/SmartSQL/Views/ConnectManage.xaml.cs +++ b/SmartSQL/SmartSQL/Views/ConnectManage.xaml.cs @@ -292,11 +292,7 @@ namespace SmartSQL.Views if (MainContent is SqliteUC ucSqlite) { ucSqlite.TestConnect(true); - } //测试Sqlite - if (MainContent is OracleUC ucOracle) - { - ucOracle.TestConnect(true); - } + } //测试Oracle if (MainContent is OracleUC ucOracle) { diff --git a/SmartSQL/SmartSQL/Views/ExportDoc.xaml.cs b/SmartSQL/SmartSQL/Views/ExportDoc.xaml.cs index 243c225..6f61e0e 100644 --- a/SmartSQL/SmartSQL/Views/ExportDoc.xaml.cs +++ b/SmartSQL/SmartSQL/Views/ExportDoc.xaml.cs @@ -1072,38 +1072,10 @@ namespace SmartSQL.Views { return; } - TableDto tbDto = new TableDto(); - tbDto.TableOrder = orderNo.ToString(); - tbDto.TableName = node.Name; - tbDto.Comment = node.Comment.FilterIllegalDir(); - tbDto.DBType = nameof(DbType.SqlServer); - - //var lst_col_dto = new List(); var columns = dbInstance.GetColumnInfoById(node.ObejcetId); - var columnIndex = 1; - tbDto.Columns = columns.Select(col => new ColumnDto() - { - ColumnOrder = (columnIndex++).ToString(), - ColumnName = col.Value.Name, - // 数据类型 - ColumnTypeName = col.Value.DataType, - // 长度 - Length = col.Value.LengthName, - // 小数位 - //colDto.Scale = "";//(col.Scale.HasValue ? col.Scale.Value.ToString() : ""); - // 主键 - IsPK = col.Value.IsPrimaryKey ? "√" : "", - // 自增 - IsIdentity = col.Value.IsIdentity ? "√" : "", - // 允许空 - CanNull = col.Value.IsNullable ? "√" : "", - // 默认值 - DefaultVal = !string.IsNullOrWhiteSpace(col.Value.DefaultValue) ? col.Value.DefaultValue : "", - // 列注释(说明) - Comment = col.Value.Comment.FilterIllegalDir() - }).ToList(); + TableDto tbDto = Trans2Columns(orderNo, node, columns, selectedConnection.DbType); tables.Add(tbDto); orderNo++; @@ -1111,44 +1083,49 @@ namespace SmartSQL.Views } if (group.Type == "Table") { - TableDto tbDto = new TableDto(); - tbDto.TableOrder = groupNo.ToString(); - tbDto.TableName = group.Name; - tbDto.Comment = group.Comment.FilterIllegalDir(); - tbDto.DBType = selectedConnection.DbType.ToString(); var columns = dbInstance.GetColumnInfoById(group.ObejcetId); - var columnIndex = 1; - tbDto.Columns = columns.Select(col => new ColumnDto() - { - ColumnOrder = (columnIndex++).ToString(), - ColumnName = col.Value.Name, - // 数据类型 - ColumnTypeName = col.Value.DataType, - // 长度 - Length = col.Value.LengthName, - // 小数位 - //colDto.Scale = "";//(col.Scale.HasValue ? col.Scale.Value.ToString() : ""); - // 主键 - IsPK = col.Value.IsPrimaryKey ? "√" : "", - // 自增 - IsIdentity = col.Value.IsIdentity ? "√" : "", - // 允许空 - CanNull = col.Value.IsNullable ? "√" : "", - // 默认值 - DefaultVal = !string.IsNullOrWhiteSpace(col.Value.DefaultValue) ? col.Value.DefaultValue : "", - // 列注释(说明) - Comment = col.Value.Comment.FilterIllegalDir() - }).ToList(); + TableDto tbDto = Trans2Columns(groupNo, group, columns, selectedConnection.DbType); tables.Add(tbDto); + groupNo++; } } return tables; #endregion } - + private TableDto Trans2Columns(int groupNo, TreeNodeItem treeNodeItem, Columns columns, DbType dbType) + { + TableDto tbDto = new TableDto(); + tbDto.TableOrder = groupNo.ToString(); + tbDto.TableName = treeNodeItem.Name; + tbDto.Comment = treeNodeItem.Comment.FilterIllegalDir(); + tbDto.DBType = dbType.ToString(); + var columnIndex = 1; + tbDto.Columns = columns.Select(col => new ColumnDto() + { + ColumnOrder = (columnIndex++).ToString(), + ColumnName = col.Value.Name, + // 数据类型 + ColumnTypeName = col.Value.DataType, + // 长度 + Length = col.Value.LengthName, + // 小数位 + //colDto.Scale = "";//(col.Scale.HasValue ? col.Scale.Value.ToString() : ""); + // 主键 + IsPK = col.Value.IsPrimaryKey ? "√" : "", + // 自增 + IsIdentity = col.Value.IsIdentity ? "√" : "", + // 允许空 + CanNull = col.Value.IsNullable ? "√" : "", + // 默认值 + DefaultVal = !string.IsNullOrWhiteSpace(col.Value.DefaultValue) ? col.Value.DefaultValue : "", + // 列注释(说明) + Comment = col.Value.Comment.FilterIllegalDir() + }).ToList(); + return tbDto; + } /// /// 取消 /// -- Gitee From d7fbd08354ca466cca5ded0ecc61134f4efc197b Mon Sep 17 00:00:00 2001 From: BaoZhen Long <398187372@qq.com> Date: Thu, 18 Aug 2022 15:34:52 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E8=BF=9E=E6=8E=A5=E5=AD=97=E7=AC=A6?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- SmartSQL/SmartSQL.Framework/Util/ConnectionStringUtil.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SmartSQL/SmartSQL.Framework/Util/ConnectionStringUtil.cs b/SmartSQL/SmartSQL.Framework/Util/ConnectionStringUtil.cs index aeacd41..b675378 100644 --- a/SmartSQL/SmartSQL.Framework/Util/ConnectionStringUtil.cs +++ b/SmartSQL/SmartSQL.Framework/Util/ConnectionStringUtil.cs @@ -87,7 +87,7 @@ namespace SmartSQL.Framework.Util public static string OracleString(string serverAddress, int port, string serviceName, string userName, string password) { var connectString = $@"Data Source={serverAddress}:{port}/{serviceName};User ID={userName};Password={EncryptHelper.Decode(password)};Pooling=False;"; - return "Data Source=10.66.10.63/orcl;User ID=qms;Password=qms;"; + return connectString; } } } -- Gitee