mirror of
				https://github.com/nsnail/FreeSql.git
				synced 2025-11-04 17:20:49 +08:00 
			
		
		
		
	- 增加 IAdo.ExecuteConnectTest 快速判断连接是否可用 #113;
This commit is contained in:
		@@ -532,5 +532,14 @@
 | 
				
			|||||||
            <param name="that"></param>
 | 
					            <param name="that"></param>
 | 
				
			||||||
            <returns></returns>
 | 
					            <returns></returns>
 | 
				
			||||||
        </member>
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:Microsoft.Extensions.DependencyInjection.FreeSqlRepositoryDependencyInjection.AddFreeRepository(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action{FreeSql.FluentDataFilter},System.Reflection.Assembly[])">
 | 
				
			||||||
 | 
					            <summary>
 | 
				
			||||||
 | 
					            批量注入 Repository,可以参考代码自行调整
 | 
				
			||||||
 | 
					            </summary>
 | 
				
			||||||
 | 
					            <param name="services"></param>
 | 
				
			||||||
 | 
					            <param name="globalDataFilter"></param>
 | 
				
			||||||
 | 
					            <param name="assemblies"></param>
 | 
				
			||||||
 | 
					            <returns></returns>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
    </members>
 | 
					    </members>
 | 
				
			||||||
</doc>
 | 
					</doc>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -18,6 +18,11 @@ namespace FreeSql.Tests.MySqlConnector
 | 
				
			|||||||
            var t2 = g.mysql.Ado.SlavePools.Count;
 | 
					            var t2 = g.mysql.Ado.SlavePools.Count;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        [Fact]
 | 
				
			||||||
 | 
					        public void ExecuteTest()
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            Assert.True(g.mysql.Ado.ExecuteConnectTest());
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
        [Fact]
 | 
					        [Fact]
 | 
				
			||||||
        public void ExecuteReader()
 | 
					        public void ExecuteReader()
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -18,6 +18,11 @@ namespace FreeSql.Tests.Odbc.Dameng
 | 
				
			|||||||
            var t2 = g.dameng.Ado.SlavePools.Count;
 | 
					            var t2 = g.dameng.Ado.SlavePools.Count;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        [Fact]
 | 
				
			||||||
 | 
					        public void ExecuteTest()
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            Assert.True(g.dameng.Ado.ExecuteConnectTest());
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
        [Fact]
 | 
					        [Fact]
 | 
				
			||||||
        public void ExecuteReader()
 | 
					        public void ExecuteReader()
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -19,6 +19,11 @@ namespace FreeSql.Tests.Odbc.Default
 | 
				
			|||||||
            var t2 = g.odbc.Ado.SlavePools.Count;
 | 
					            var t2 = g.odbc.Ado.SlavePools.Count;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        [Fact]
 | 
				
			||||||
 | 
					        public void ExecuteTest()
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            Assert.True(g.odbc.Ado.ExecuteConnectTest());
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
        [Fact]
 | 
					        [Fact]
 | 
				
			||||||
        public void ExecuteReader()
 | 
					        public void ExecuteReader()
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -18,6 +18,11 @@ namespace FreeSql.Tests.Odbc.KingbaseES
 | 
				
			|||||||
            var t2 = g.kingbaseES.Ado.SlavePools.Count;
 | 
					            var t2 = g.kingbaseES.Ado.SlavePools.Count;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        [Fact]
 | 
				
			||||||
 | 
					        public void ExecuteTest()
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            Assert.True(g.kingbaseES.Ado.ExecuteConnectTest());
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
        [Fact]
 | 
					        [Fact]
 | 
				
			||||||
        public void ExecuteReader()
 | 
					        public void ExecuteReader()
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -19,6 +19,11 @@ namespace FreeSql.Tests.Odbc.MySql
 | 
				
			|||||||
            var t2 = g.mysql.Ado.SlavePools.Count;
 | 
					            var t2 = g.mysql.Ado.SlavePools.Count;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        [Fact]
 | 
				
			||||||
 | 
					        public void ExecuteTest()
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            Assert.True(g.mysql.Ado.ExecuteConnectTest());
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
        [Fact]
 | 
					        [Fact]
 | 
				
			||||||
        public void ExecuteReader()
 | 
					        public void ExecuteReader()
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -18,6 +18,11 @@ namespace FreeSql.Tests.Odbc.Oracle
 | 
				
			|||||||
            var t2 = g.oracle.Ado.SlavePools.Count;
 | 
					            var t2 = g.oracle.Ado.SlavePools.Count;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        [Fact]
 | 
				
			||||||
 | 
					        public void ExecuteTest()
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            Assert.True(g.oracle.Ado.ExecuteConnectTest());
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
        [Fact]
 | 
					        [Fact]
 | 
				
			||||||
        public void ExecuteReader()
 | 
					        public void ExecuteReader()
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -18,6 +18,11 @@ namespace FreeSql.Tests.Odbc.PostgreSQL
 | 
				
			|||||||
            var t2 = g.pgsql.Ado.SlavePools.Count;
 | 
					            var t2 = g.pgsql.Ado.SlavePools.Count;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        [Fact]
 | 
				
			||||||
 | 
					        public void ExecuteTest()
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            Assert.True(g.pgsql.Ado.ExecuteConnectTest());
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
        [Fact]
 | 
					        [Fact]
 | 
				
			||||||
        public void ExecuteReader()
 | 
					        public void ExecuteReader()
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -20,6 +20,11 @@ namespace FreeSql.Tests.Odbc.SqlServer
 | 
				
			|||||||
            var t2 = g.sqlserver.Ado.SlavePools.Count;
 | 
					            var t2 = g.sqlserver.Ado.SlavePools.Count;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        [Fact]
 | 
				
			||||||
 | 
					        public void ExecuteTest()
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            Assert.True(g.sqlserver.Ado.ExecuteConnectTest());
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
        [Fact]
 | 
					        [Fact]
 | 
				
			||||||
        public void ExecuteReader()
 | 
					        public void ExecuteReader()
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -18,6 +18,11 @@ namespace FreeSql.Tests.Dameng
 | 
				
			|||||||
            var t2 = g.dameng.Ado.SlavePools.Count;
 | 
					            var t2 = g.dameng.Ado.SlavePools.Count;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        [Fact]
 | 
				
			||||||
 | 
					        public void ExecuteTest()
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            Assert.True(g.dameng.Ado.ExecuteConnectTest());
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
        [Fact]
 | 
					        [Fact]
 | 
				
			||||||
        public void ExecuteReader()
 | 
					        public void ExecuteReader()
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -17,6 +17,12 @@ namespace FreeSql.Tests.MsAccess
 | 
				
			|||||||
        {
 | 
					        {
 | 
				
			||||||
            var t2 = g.msaccess.Ado.SlavePools.Count;
 | 
					            var t2 = g.msaccess.Ado.SlavePools.Count;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        [Fact]
 | 
				
			||||||
 | 
					        public void ExecuteTest()
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            Assert.True(g.msaccess.Ado.ExecuteConnectTest());
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
        [Fact]
 | 
					        [Fact]
 | 
				
			||||||
        public void ExecuteReader()
 | 
					        public void ExecuteReader()
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -18,6 +18,11 @@ namespace FreeSql.Tests.MySql
 | 
				
			|||||||
            var t2 = g.mysql.Ado.SlavePools.Count;
 | 
					            var t2 = g.mysql.Ado.SlavePools.Count;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        [Fact]
 | 
				
			||||||
 | 
					        public void ExecuteTest()
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            Assert.True(g.mysql.Ado.ExecuteConnectTest());
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
        [Fact]
 | 
					        [Fact]
 | 
				
			||||||
        public void ExecuteReader()
 | 
					        public void ExecuteReader()
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -18,6 +18,11 @@ namespace FreeSql.Tests.Oracle
 | 
				
			|||||||
            var t2 = g.oracle.Ado.SlavePools.Count;
 | 
					            var t2 = g.oracle.Ado.SlavePools.Count;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        [Fact]
 | 
				
			||||||
 | 
					        public void ExecuteTest()
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            Assert.True(g.oracle.Ado.ExecuteConnectTest());
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
        [Fact]
 | 
					        [Fact]
 | 
				
			||||||
        public void ExecuteReader()
 | 
					        public void ExecuteReader()
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -18,6 +18,11 @@ namespace FreeSql.Tests.PostgreSQL
 | 
				
			|||||||
            var t2 = g.pgsql.Ado.SlavePools.Count;
 | 
					            var t2 = g.pgsql.Ado.SlavePools.Count;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        [Fact]
 | 
				
			||||||
 | 
					        public void ExecuteTest()
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            Assert.True(g.pgsql.Ado.ExecuteConnectTest());
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
        [Fact]
 | 
					        [Fact]
 | 
				
			||||||
        public void ExecuteReader()
 | 
					        public void ExecuteReader()
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -18,6 +18,11 @@ namespace FreeSql.Tests.ShenTong
 | 
				
			|||||||
            var t2 = g.shentong.Ado.SlavePools.Count;
 | 
					            var t2 = g.shentong.Ado.SlavePools.Count;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        [Fact]
 | 
				
			||||||
 | 
					        public void ExecuteTest()
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            Assert.True(g.shentong.Ado.ExecuteConnectTest());
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
        [Fact]
 | 
					        [Fact]
 | 
				
			||||||
        public void ExecuteReader()
 | 
					        public void ExecuteReader()
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -29,6 +29,11 @@ namespace FreeSql.Tests.SqlServer
 | 
				
			|||||||
            var t2 = g.sqlserver.Ado.SlavePools.Count;
 | 
					            var t2 = g.sqlserver.Ado.SlavePools.Count;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        [Fact]
 | 
				
			||||||
 | 
					        public void ExecuteTest()
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            Assert.True(g.sqlserver.Ado.ExecuteConnectTest());
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
        [Fact]
 | 
					        [Fact]
 | 
				
			||||||
        public void ExecuteReader()
 | 
					        public void ExecuteReader()
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -17,6 +17,12 @@ namespace FreeSql.Tests.Sqlite
 | 
				
			|||||||
        {
 | 
					        {
 | 
				
			||||||
            var t2 = g.sqlite.Ado.SlavePools.Count;
 | 
					            var t2 = g.sqlite.Ado.SlavePools.Count;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        [Fact]
 | 
				
			||||||
 | 
					        public void ExecuteTest()
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            Assert.True(g.sqlite.Ado.ExecuteConnectTest());
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
        [Fact]
 | 
					        [Fact]
 | 
				
			||||||
        public void ExecuteReader()
 | 
					        public void ExecuteReader()
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -2479,6 +2479,14 @@
 | 
				
			|||||||
            <param name="obj">new { id = 1 } 或者 Dictionary<string, object></param>
 | 
					            <param name="obj">new { id = 1 } 或者 Dictionary<string, object></param>
 | 
				
			||||||
            <returns></returns>
 | 
					            <returns></returns>
 | 
				
			||||||
        </member>
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:FreeSql.IAdo.ExecuteConnectTest">
 | 
				
			||||||
 | 
					            <summary>
 | 
				
			||||||
 | 
					            测试数据库是否连接正确,本方法执行如下命令:<para></para>
 | 
				
			||||||
 | 
					            MySql/SqlServer/PostgreSQL/达梦/人大金仓/神通: SELECT 1<para></para>
 | 
				
			||||||
 | 
					            Oracle: SELECT 1 FROM dual<para></para>
 | 
				
			||||||
 | 
					            </summary>
 | 
				
			||||||
 | 
					            <returns>true: 成功, false: 失败</returns>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
        <member name="M:FreeSql.IAdo.ExecuteReader(System.Action{FreeSql.Internal.Model.FetchCallbackArgs{System.Data.Common.DbDataReader}},System.Data.CommandType,System.String,System.Data.Common.DbParameter[])">
 | 
					        <member name="M:FreeSql.IAdo.ExecuteReader(System.Action{FreeSql.Internal.Model.FetchCallbackArgs{System.Data.Common.DbDataReader}},System.Data.CommandType,System.String,System.Data.Common.DbParameter[])">
 | 
				
			||||||
            <summary>
 | 
					            <summary>
 | 
				
			||||||
            查询,若使用读写分离,查询【从库】条件cmdText.StartsWith("SELECT "),否则查询【主库】
 | 
					            查询,若使用读写分离,查询【从库】条件cmdText.StartsWith("SELECT "),否则查询【主库】
 | 
				
			||||||
@@ -2618,6 +2626,14 @@
 | 
				
			|||||||
            <param name="parms"></param>
 | 
					            <param name="parms"></param>
 | 
				
			||||||
            <returns></returns>
 | 
					            <returns></returns>
 | 
				
			||||||
        </member>
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:FreeSql.IAdo.ExecuteConnectTestAsync">
 | 
				
			||||||
 | 
					            <summary>
 | 
				
			||||||
 | 
					            测试数据库是否连接正确,本方法执行如下命令:<para></para>
 | 
				
			||||||
 | 
					            MySql/SqlServer/PostgreSQL/达梦/人大金仓/神通: SELECT 1<para></para>
 | 
				
			||||||
 | 
					            Oracle: SELECT 1 FROM dual<para></para>
 | 
				
			||||||
 | 
					            </summary>
 | 
				
			||||||
 | 
					            <returns>true: 成功, false: 失败</returns>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
        <member name="M:FreeSql.IAdo.ExecuteReaderAsync(System.Func{FreeSql.Internal.Model.FetchCallbackArgs{System.Data.Common.DbDataReader},System.Threading.Tasks.Task},System.Data.CommandType,System.String,System.Data.Common.DbParameter[])">
 | 
					        <member name="M:FreeSql.IAdo.ExecuteReaderAsync(System.Func{FreeSql.Internal.Model.FetchCallbackArgs{System.Data.Common.DbDataReader},System.Threading.Tasks.Task},System.Data.CommandType,System.String,System.Data.Common.DbParameter[])">
 | 
				
			||||||
            <summary>
 | 
					            <summary>
 | 
				
			||||||
            查询,若使用读写分离,查询【从库】条件cmdText.StartsWith("SELECT "),否则查询【主库】
 | 
					            查询,若使用读写分离,查询【从库】条件cmdText.StartsWith("SELECT "),否则查询【主库】
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -62,6 +62,14 @@ namespace FreeSql
 | 
				
			|||||||
        /// <returns></returns>
 | 
					        /// <returns></returns>
 | 
				
			||||||
        DbParameter[] GetDbParamtersByObject(object obj);
 | 
					        DbParameter[] GetDbParamtersByObject(object obj);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /// <summary>
 | 
				
			||||||
 | 
					        /// 测试数据库是否连接正确,本方法执行如下命令:<para></para>
 | 
				
			||||||
 | 
					        /// MySql/SqlServer/PostgreSQL/达梦/人大金仓/神通: SELECT 1<para></para>
 | 
				
			||||||
 | 
					        /// Oracle: SELECT 1 FROM dual<para></para>
 | 
				
			||||||
 | 
					        /// </summary>
 | 
				
			||||||
 | 
					        /// <returns>true: 成功, false: 失败</returns>
 | 
				
			||||||
 | 
					        bool ExecuteConnectTest();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        /// <summary>
 | 
					        /// <summary>
 | 
				
			||||||
        /// 查询,若使用读写分离,查询【从库】条件cmdText.StartsWith("SELECT "),否则查询【主库】
 | 
					        /// 查询,若使用读写分离,查询【从库】条件cmdText.StartsWith("SELECT "),否则查询【主库】
 | 
				
			||||||
        /// </summary>
 | 
					        /// </summary>
 | 
				
			||||||
@@ -243,6 +251,14 @@ namespace FreeSql
 | 
				
			|||||||
#if net40
 | 
					#if net40
 | 
				
			||||||
#else
 | 
					#else
 | 
				
			||||||
        #region async
 | 
					        #region async
 | 
				
			||||||
 | 
					        /// <summary>
 | 
				
			||||||
 | 
					        /// 测试数据库是否连接正确,本方法执行如下命令:<para></para>
 | 
				
			||||||
 | 
					        /// MySql/SqlServer/PostgreSQL/达梦/人大金仓/神通: SELECT 1<para></para>
 | 
				
			||||||
 | 
					        /// Oracle: SELECT 1 FROM dual<para></para>
 | 
				
			||||||
 | 
					        /// </summary>
 | 
				
			||||||
 | 
					        /// <returns>true: 成功, false: 失败</returns>
 | 
				
			||||||
 | 
					        Task<bool> ExecuteConnectTestAsync();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        /// <summary>
 | 
					        /// <summary>
 | 
				
			||||||
        /// 查询,若使用读写分离,查询【从库】条件cmdText.StartsWith("SELECT "),否则查询【主库】
 | 
					        /// 查询,若使用读写分离,查询【从库】条件cmdText.StartsWith("SELECT "),否则查询【主库】
 | 
				
			||||||
        /// </summary>
 | 
					        /// </summary>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -95,6 +95,27 @@ namespace FreeSql.Internal.CommonProvider
 | 
				
			|||||||
            var props = tb?.Properties ?? type.GetPropertiesDictIgnoreCase();
 | 
					            var props = tb?.Properties ?? type.GetPropertiesDictIgnoreCase();
 | 
				
			||||||
            return props;
 | 
					            return props;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        public bool ExecuteConnectTest()
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            try
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                switch (DataType)
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    case DataType.Oracle:
 | 
				
			||||||
 | 
					                    case DataType.OdbcOracle:
 | 
				
			||||||
 | 
					                        ExecuteNonQuery(" SELECT 1 FROM dual");
 | 
				
			||||||
 | 
					                        return true;
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					                ExecuteNonQuery(" SELECT 1");
 | 
				
			||||||
 | 
					                return true;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            catch
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                return false;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        public List<T> Query<T>(string cmdText, object parms = null) => Query<T>(null, null, null, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms));
 | 
					        public List<T> Query<T>(string cmdText, object parms = null) => Query<T>(null, null, null, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms));
 | 
				
			||||||
        public List<T> Query<T>(DbTransaction transaction, string cmdText, object parms = null) => Query<T>(null, null, transaction, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms));
 | 
					        public List<T> Query<T>(DbTransaction transaction, string cmdText, object parms = null) => Query<T>(null, null, transaction, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms));
 | 
				
			||||||
        public List<T> Query<T>(DbConnection connection, DbTransaction transaction, string cmdText, object parms = null) => Query<T>(null, connection, transaction, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms));
 | 
					        public List<T> Query<T>(DbConnection connection, DbTransaction transaction, string cmdText, object parms = null) => Query<T>(null, connection, transaction, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms));
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -14,6 +14,26 @@ namespace FreeSql.Internal.CommonProvider
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
    partial class AdoProvider
 | 
					    partial class AdoProvider
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
 | 
					        async public Task<bool> ExecuteConnectTestAsync()
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            try
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                switch (DataType)
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    case DataType.Oracle:
 | 
				
			||||||
 | 
					                    case DataType.OdbcOracle:
 | 
				
			||||||
 | 
					                        await ExecuteNonQueryAsync(" SELECT 1 FROM dual");
 | 
				
			||||||
 | 
					                        return true;
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					                await ExecuteNonQueryAsync(" SELECT 1");
 | 
				
			||||||
 | 
					                return true;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            catch
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                return false;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        public Task<List<T>> QueryAsync<T>(string cmdText, object parms = null) => QueryAsync<T>(null, null, null, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms));
 | 
					        public Task<List<T>> QueryAsync<T>(string cmdText, object parms = null) => QueryAsync<T>(null, null, null, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms));
 | 
				
			||||||
        public Task<List<T>> QueryAsync<T>(DbTransaction transaction, string cmdText, object parms = null) => QueryAsync<T>(null, null, transaction, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms));
 | 
					        public Task<List<T>> QueryAsync<T>(DbTransaction transaction, string cmdText, object parms = null) => QueryAsync<T>(null, null, transaction, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms));
 | 
				
			||||||
        public Task<List<T>> QueryAsync<T>(DbConnection connection, DbTransaction transaction, string cmdText, object parms = null) => QueryAsync<T>(null, connection, transaction, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms));
 | 
					        public Task<List<T>> QueryAsync<T>(DbConnection connection, DbTransaction transaction, string cmdText, object parms = null) => QueryAsync<T>(null, connection, transaction, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms));
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user