From 4e68a0ce12c428a20146fb02913b7ddfea646aad Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Sat, 26 Feb 2022 14:36:59 +0800 Subject: [PATCH] Update access --- Src/Asp.Net/AccessTest/Program.cs | 4 +- .../DbMaintenance/AccessDbMaintenance.cs | 43 ++++++++++++++++--- 2 files changed, 37 insertions(+), 10 deletions(-) diff --git a/Src/Asp.Net/AccessTest/Program.cs b/Src/Asp.Net/AccessTest/Program.cs index c52df209a..f2c57517b 100644 --- a/Src/Asp.Net/AccessTest/Program.cs +++ b/Src/Asp.Net/AccessTest/Program.cs @@ -11,8 +11,6 @@ namespace OrmTest /// static void Main(string[] args) { - - //Demo Demo0_SqlSugarClient.Init(); Demo1_Queryable.Init(); Demo2_Updateable.Init(); @@ -20,7 +18,7 @@ namespace OrmTest Demo4_Deleteable.Init(); Demo5_SqlQueryable.Init(); Demo7_Ado.Init(); - //DemoD_DbFirst.Init(); + DemoD_DbFirst.Init(); Console.WriteLine("all successfully."); Console.ReadKey(); } diff --git a/Src/Asp.Net/SqlSugar.Access/Access/DbMaintenance/AccessDbMaintenance.cs b/Src/Asp.Net/SqlSugar.Access/Access/DbMaintenance/AccessDbMaintenance.cs index 43ef96988..a0fa4b798 100644 --- a/Src/Asp.Net/SqlSugar.Access/Access/DbMaintenance/AccessDbMaintenance.cs +++ b/Src/Asp.Net/SqlSugar.Access/Access/DbMaintenance/AccessDbMaintenance.cs @@ -316,19 +316,45 @@ namespace SqlSugar.Access { //base.AddDefaultValue(entityInfo); } + public override List GetViewInfoList(bool isCache = true) + { + return new List(); + } public override List GetTableInfoList(bool isCache = true) { - // (this.Context.Ado.Connection as OleDbConnection).Open(); + bool isOpen = Open(); var table = (this.Context.Ado.Connection as OleDbConnection).GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new Object[] { null, null, null, "Table" }); - var result= table - .Rows.Cast().Select(it=>new DbTableInfo - { - - Name=it["TABLE_NAME"]+"", - Description=it["DESCRIPTION"]+"" + var result = table + .Rows.Cast().Select(it => new DbTableInfo + { + + Name = it["TABLE_NAME"] + "", + Description = it["DESCRIPTION"] + "" }).ToList(); + Close(isOpen); return result; } + + private void Close(bool isOpen) + { + if (this.Context.CurrentConnectionConfig.IsAutoCloseConnection = true && isOpen) + { + this.Context.Ado.Connection.Close(); + } + } + + private bool Open() + { + var isOpen = false; + if (this.Context.CurrentConnectionConfig.IsAutoCloseConnection = true && this.Context.Ado.Connection.State == ConnectionState.Closed) + { + this.Context.Ado.Connection.Open(); + isOpen = true; + } + + return isOpen; + } + public List GetSchemas() { return this.Context.Ado.SqlQuery("SELECT name FROM sys.schemas where name <> 'dbo'"); @@ -438,9 +464,11 @@ namespace SqlSugar.Access } public override List GetColumnInfosByTableName(string tableName, bool isCache = true) { + List columns = new List(); var dt = this.Context.Ado.GetDataTable("select top 8 * from " +this.SqlBuilder.GetTranslationTableName(tableName)); var oleDb = (this.Context.Ado.Connection as OleDbConnection); + bool isOpen = Open(); DataTable columnTable = oleDb.GetOleDbSchemaTable(OleDbSchemaGuid.Columns, new object[] { null, null,tableName, null }); DataTable Pk = oleDb.GetOleDbSchemaTable(OleDbSchemaGuid.Primary_Keys, new string[] { null, null, tableName }); foreach (DataRow dr in columnTable.Rows) @@ -480,6 +508,7 @@ namespace SqlSugar.Access } columns.Add(info); } + Close(isOpen); return columns; } public override bool RenameColumn(string tableName, string oldColumnName, string newColumnName)