diff --git a/FreeSql/Interface/IAdo.cs b/FreeSql/Interface/IAdo.cs
index d27b9f24..744245d7 100644
--- a/FreeSql/Interface/IAdo.cs
+++ b/FreeSql/Interface/IAdo.cs
@@ -93,6 +93,23 @@ namespace FreeSql {
///
///
///
+ DataSet ExecuteDataSet(CommandType cmdType, string cmdText, params DbParameter[] cmdParms);
+ DataSet ExecuteDataSet(DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms);
+ DataSet ExecuteDataSet(DbConnection connection, DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms);
+ ///
+ /// 查询,ExecuteDataSet("select * from user where age > @age; select 2", new { age = 25 })
+ ///
+ ///
+ ///
+ ///
+ DataSet ExecuteDataSet(string cmdText, object parms = null);
+ DataSet ExecuteDataSet(DbTransaction transaction, string cmdText, object parms = null);
+ DataSet ExecuteDataSet(DbConnection connection, DbTransaction transaction, string cmdText, object parms = null);
+ ///
+ /// 查询
+ ///
+ ///
+ ///
DataTable ExecuteDataTable(CommandType cmdType, string cmdText, params DbParameter[] cmdParms);
DataTable ExecuteDataTable(DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms);
DataTable ExecuteDataTable(DbConnection connection, DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms);
@@ -145,7 +162,7 @@ namespace FreeSql {
///
/// 执行SQL返回对象集合,Query<User>("select * from user where age > @age", new SqlParameter { ParameterName = "age", Value = 25 })
///
- ///
+ ///
///
///
///
@@ -156,7 +173,7 @@ namespace FreeSql {
///
/// 执行SQL返回对象集合,Query<User>("select * from user where age > @age", new { age = 25 })
///
- ///
+ ///
///
///
///
@@ -164,6 +181,47 @@ namespace FreeSql {
List Query(DbTransaction transaction, string cmdText, object parms = null);
List Query(DbConnection connection, DbTransaction transaction, string cmdText, object parms = null);
+ ///
+ /// 执行SQL返回对象集合,Query<User>("select * from user where age > @age; select * from address", new SqlParameter { ParameterName = "age", Value = 25 })
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ (List, List) Query(CommandType cmdType, string cmdText, params DbParameter[] cmdParms);
+ (List, List) Query(DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms);
+ (List, List) Query(DbConnection connection, DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms);
+ ///
+ /// 执行SQL返回对象集合,Query<User>("select * from user where age > @age; select * from address", new { age = 25 })
+ ///
+ ///
+ ///
+ ///
+ ///
+ (List, List) Query(string cmdText, object parms = null);
+ (List, List) Query(DbTransaction transaction, string cmdText, object parms = null);
+ (List, List) Query(DbConnection connection, DbTransaction transaction, string cmdText, object parms = null);
+
+ (List, List, List) Query(CommandType cmdType, string cmdText, params DbParameter[] cmdParms);
+ (List, List, List) Query(DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms);
+ (List, List, List) Query(DbConnection connection, DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms);
+ (List, List, List) Query(string cmdText, object parms = null);
+ (List, List, List) Query(DbTransaction transaction, string cmdText, object parms = null);
+ (List, List, List) Query(DbConnection connection, DbTransaction transaction, string cmdText, object parms = null);
+ (List, List, List, List) Query(CommandType cmdType, string cmdText, params DbParameter[] cmdParms);
+ (List, List, List, List) Query(DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms);
+ (List, List, List, List) Query(DbConnection connection, DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms);
+ (List, List, List, List) Query(string cmdText, object parms = null);
+ (List, List, List, List) Query(DbTransaction transaction, string cmdText, object parms = null);
+ (List, List, List, List) Query(DbConnection connection, DbTransaction transaction, string cmdText, object parms = null);
+ (List, List, List, List, List) Query(CommandType cmdType, string cmdText, params DbParameter[] cmdParms);
+ (List, List, List, List, List) Query(DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms);
+ (List, List, List, List, List) Query(DbConnection connection, DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms);
+ (List, List, List, List, List) Query(string cmdText, object parms = null);
+ (List, List, List, List, List) Query(DbTransaction transaction, string cmdText, object parms = null);
+ (List, List, List, List, List) Query(DbConnection connection, DbTransaction transaction, string cmdText, object parms = null);
+
#region async
///
/// 查询,若使用读写分离,查询【从库】条件cmdText.StartsWith("SELECT "),否则查询【主库】
@@ -205,6 +263,23 @@ namespace FreeSql {
///
///
///
+ Task ExecuteDataSetAsync(CommandType cmdType, string cmdText, params DbParameter[] cmdParms);
+ Task ExecuteDataSetAsync(DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms);
+ Task ExecuteDataSetAsync(DbConnection connection, DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms);
+ ///
+ /// 查询,ExecuteDataSetAsync("select * from user where age > @age; select 2", new { age = 25 })
+ ///
+ ///
+ ///
+ ///
+ Task ExecuteDataSetAsync(string cmdText, object parms = null);
+ Task ExecuteDataSetAsync(DbTransaction transaction, string cmdText, object parms = null);
+ Task ExecuteDataSetAsync(DbConnection connection, DbTransaction transaction, string cmdText, object parms = null);
+ ///
+ /// 查询
+ ///
+ ///
+ ///
Task ExecuteDataTableAsync(CommandType cmdType, string cmdText, params DbParameter[] cmdParms);
Task ExecuteDataTableAsync(DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms);
Task ExecuteDataTableAsync(DbConnection connection, DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms);
@@ -275,6 +350,47 @@ namespace FreeSql {
Task> QueryAsync(string cmdText, object parms = null);
Task> QueryAsync(DbTransaction transaction, string cmdText, object parms = null);
Task> QueryAsync(DbConnection connection, DbTransaction transaction, string cmdText, object parms = null);
+
+ ///
+ /// 执行SQL返回对象集合,Query<User>("select * from user where age > @age; select * from address", new SqlParameter { ParameterName = "age", Value = 25 })
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ Task<(List, List)> QueryAsync(CommandType cmdType, string cmdText, params DbParameter[] cmdParms);
+ Task<(List, List)> QueryAsync(DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms);
+ Task<(List, List)> QueryAsync(DbConnection connection, DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms);
+ ///
+ /// 执行SQL返回对象集合,Query<User>("select * from user where age > @age; select * from address", new { age = 25 })
+ ///
+ ///
+ ///
+ ///
+ ///
+ Task<(List, List)> QueryAsync(string cmdText, object parms = null);
+ Task<(List, List)> QueryAsync(DbTransaction transaction, string cmdText, object parms = null);
+ Task<(List, List)> QueryAsync(DbConnection connection, DbTransaction transaction, string cmdText, object parms = null);
+
+ Task<(List, List, List)> QueryAsync(CommandType cmdType, string cmdText, params DbParameter[] cmdParms);
+ Task<(List, List, List)> QueryAsync(DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms);
+ Task<(List, List, List)> QueryAsync(DbConnection connection, DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms);
+ Task<(List, List, List)> QueryAsync(string cmdText, object parms = null);
+ Task<(List, List, List)> QueryAsync(DbTransaction transaction, string cmdText, object parms = null);
+ Task<(List, List, List)> QueryAsync(DbConnection connection, DbTransaction transaction, string cmdText, object parms = null);
+ Task<(List, List, List, List)> QueryAsync(CommandType cmdType, string cmdText, params DbParameter[] cmdParms);
+ Task<(List, List, List, List)> QueryAsync(DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms);
+ Task<(List, List, List, List)> QueryAsync(DbConnection connection, DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms);
+ Task<(List, List, List, List)> QueryAsync(string cmdText, object parms = null);
+ Task<(List, List, List, List)> QueryAsync(DbTransaction transaction, string cmdText, object parms = null);
+ Task<(List, List, List, List)> QueryAsync(DbConnection connection, DbTransaction transaction, string cmdText, object parms = null);
+ Task<(List, List, List, List, List)> QueryAsync(CommandType cmdType, string cmdText, params DbParameter[] cmdParms);
+ Task<(List, List, List, List, List)> QueryAsync(DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms);
+ Task<(List, List, List, List, List)> QueryAsync(DbConnection connection, DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms);
+ Task<(List, List, List, List, List)> QueryAsync(string cmdText, object parms = null);
+ Task<(List, List, List, List, List)> QueryAsync(DbTransaction transaction, string cmdText, object parms = null);
+ Task<(List, List, List, List, List)> QueryAsync(DbConnection connection, DbTransaction transaction, string cmdText, object parms = null);
#endregion
}
}
diff --git a/FreeSql/Internal/CommonProvider/AdoProvider/AdoProvider.cs b/FreeSql/Internal/CommonProvider/AdoProvider/AdoProvider.cs
index 4567ea98..d51b28b1 100644
--- a/FreeSql/Internal/CommonProvider/AdoProvider/AdoProvider.cs
+++ b/FreeSql/Internal/CommonProvider/AdoProvider/AdoProvider.cs
@@ -98,12 +98,263 @@ namespace FreeSql.Internal.CommonProvider {
}, cmdType, cmdText, cmdParms);
return ret;
}
+ #region query multi
+ public (List, List) Query(string cmdText, object parms = null) => Query(null, null, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms));
+ public (List, List) Query(DbTransaction transaction, string cmdText, object parms = null) => Query(null, transaction, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms));
+ public (List, List) Query(DbConnection connection, DbTransaction transaction, string cmdText, object parms = null) => Query(connection, transaction, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms));
+ public (List, List) Query(CommandType cmdType, string cmdText, params DbParameter[] cmdParms) => Query(null, null, cmdType, cmdText, cmdParms);
+ public (List, List) Query(DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms) => Query