using System; using System.Collections.Generic; using System.Data; using System.Data.Common; using System.Linq; using System.Reflection; using System.Text; using System.Threading; using System.Threading.Tasks; namespace SqlSugar { public partial interface IAdo { string SqlParameterKeyWord { get; } IDbConnection Connection { get; set; } IDbTransaction Transaction { get; set; } IDataParameter[] ToIDbDataParameter(params SugarParameter[] pars); SugarParameter[] GetParameters(object obj, PropertyInfo[] propertyInfo = null); SqlSugarProvider Context { get; set; } void CheckConnectionAfter(IDbConnection Connection); void CheckConnectionBefore(IDbConnection Connection); void ExecuteBefore(string sql, SugarParameter[] pars); void ExecuteAfter(string sql, SugarParameter[] pars); void GetDataBefore(string sql, SugarParameter[] parameters); void GetDataAfter(string sql, SugarParameter[] parameters); bool IsAnyTran(); bool IsNoTran(); bool IsEnableLogEvent { get; set; } StackTraceInfo SqlStackTrace { get; } IDataParameterCollection DataReaderParameters { get; set; } CommandType CommandType { get; set; } CancellationToken? CancellationToken { get; set; } bool IsDisableMasterSlaveSeparation { get; set; } bool IsClearParameters { get; set; } int CommandTimeOut { get; set; } TimeSpan SqlExecutionTime { get; } TimeSpan ConnectionExecutionTime { get; } int SqlExecuteCount { get; } IDbBind DbBind { get; } void SetCommandToAdapter(IDataAdapter adapter, DbCommand command); IDataAdapter GetAdapter(); DbCommand GetCommand(string sql, SugarParameter[] parameters); DataTable GetDataTable(string sql, object parameters); DataTable GetDataTable(string sql, params SugarParameter[] parameters); DataTable GetDataTable(string sql, List parameters); Task GetDataTableAsync(string sql, object parameters); Task GetDataTableAsync(string sql, params SugarParameter[] parameters); Task GetDataTableAsync(string sql, List parameters); DataSet GetDataSetAll(string sql, object parameters); DataSet GetDataSetAll(string sql, params SugarParameter[] parameters); DataSet GetDataSetAll(string sql, List parameters); Task GetDataSetAllAsync(string sql, object parameters); Task GetDataSetAllAsync(string sql, params SugarParameter[] parameters); Task GetDataSetAllAsync(string sql, List parameters); IDataReader GetDataReader(string sql, object parameters); IDataReader GetDataReader(string sql, params SugarParameter[] parameters); IDataReader GetDataReader(string sql, List parameters); Task GetDataReaderAsync(string sql, object parameters); Task GetDataReaderAsync(string sql, params SugarParameter[] parameters); Task GetDataReaderAsync(string sql, List parameters); object GetScalar(string sql, object parameters); object GetScalar(string sql, params SugarParameter[] parameters); object GetScalar(string sql, List parameters); Task GetScalarAsync(string sql, object parameters); Task GetScalarAsync(string sql, params SugarParameter[] parameters); Task GetScalarAsync(string sql, List parameters); int ExecuteCommandWithGo(string sql, params SugarParameter[] parameters); int ExecuteCommand(string sql, object parameters); int ExecuteCommand(string sql, params SugarParameter[] parameters); int ExecuteCommand(string sql, List parameters); Task ExecuteCommandAsync(string sql, params SugarParameter[] parameters); Task ExecuteCommandAsync(string sql, object parameters); Task ExecuteCommandAsync(string sql, object parameters, CancellationToken cancellationToken); Task ExecuteCommandAsync(string sql, List parameters); string GetString(string sql, object parameters); string GetString(string sql, params SugarParameter[] parameters); string GetString(string sql, List parameters); Task GetStringAsync(string sql, object parameters); Task GetStringAsync(string sql, params SugarParameter[] parameters); Task GetStringAsync(string sql, List parameters); int GetInt(string sql, object pars); int GetInt(string sql, params SugarParameter[] parameters); int GetInt(string sql, List parameters); Task GetIntAsync(string sql, object pars); Task GetIntAsync(string sql, params SugarParameter[] parameters); Task GetIntAsync(string sql, List parameters); long GetLong(string sql, object pars = null); Task GetLongAsync(string sql, object pars = null); Double GetDouble(string sql, object parameters); Double GetDouble(string sql, params SugarParameter[] parameters); Double GetDouble(string sql, List parameters); Task GetDoubleAsync(string sql, object parameters); Task GetDoubleAsync(string sql, params SugarParameter[] parameters); Task GetDoubleAsync(string sql, List parameters); decimal GetDecimal(string sql, object parameters); decimal GetDecimal(string sql, params SugarParameter[] parameters); decimal GetDecimal(string sql, List parameters); Task GetDecimalAsync(string sql, object parameters); Task GetDecimalAsync(string sql, params SugarParameter[] parameters); Task GetDecimalAsync(string sql, List parameters); DateTime GetDateTime(string sql, object parameters); DateTime GetDateTime(string sql, params SugarParameter[] parameters); DateTime GetDateTime(string sql, List parameters); Task GetDateTimeAsync(string sql, object parameters); Task GetDateTimeAsync(string sql, params SugarParameter[] parameters); Task GetDateTimeAsync(string sql, List parameters); Tuple, List> SqlQuery(string sql, object parameters = null); Tuple, List, List> SqlQuery(string sql, object parameters = null); Tuple, List, List, List> SqlQuery(string sql, object parameters = null); Tuple, List, List, List, List> SqlQuery(string sql, object parameters = null); Tuple, List, List, List, List, List> SqlQuery(string sql, object parameters = null); Tuple, List, List, List, List, List, List> SqlQuery(string sql, object parameters = null); Task, List>> SqlQueryAsync(string sql, object parameters = null); Task, List, List>> SqlQueryAsync(string sql, object parameters = null); Task, List, List, List>> SqlQueryAsync(string sql, object parameters = null); Task, List, List, List, List>> SqlQueryAsync(string sql, object parameters = null); Task, List, List, List, List, List>> SqlQueryAsync(string sql, object parameters = null); Task, List, List, List, List, List, List>> SqlQueryAsync(string sql, object parameters = null); List SqlQuery(string sql, object parameters = null); List SqlQuery(string sql, params SugarParameter[] parameters); List SqlQuery(string sql, List parameters); Task> MasterSqlQueryAasync(string sql, object parameters = null); List MasterSqlQuery(string sql, object parameters = null); Task> SqlQueryAsync(string sql, object parameters = null); Task> SqlQueryAsync(string sql, object parameters, CancellationToken token); Task> SqlQueryAsync(string sql, List parameters); Task> SqlQueryAsync(string sql, params SugarParameter[] parameters); T SqlQuerySingle(string sql, object whereObj = null); T SqlQuerySingle(string sql, params SugarParameter[] parameters); T SqlQuerySingle(string sql, List parameters); Task SqlQuerySingleAsync(string sql, object whereObj = null); Task SqlQuerySingleAsync(string sql, params SugarParameter[] parameters); Task SqlQuerySingleAsync(string sql, List parameters); void RemoveCancellationToken(); void Dispose(); void Close(); Task CloseAsync(); void Open(); Task OpenAsync(); SugarConnection OpenAlways(); bool IsValidConnection(); bool IsValidConnectionNoClose(); void CheckConnection(); void BeginTran(); Task BeginTranAsync(); Task BeginTranAsync(IsolationLevel iso); void BeginTran(IsolationLevel iso); void BeginTran(string transactionName); void BeginTran(IsolationLevel iso, string transactionName); void RollbackTran(); Task RollbackTranAsync(); void CommitTran(); Task CommitTranAsync(); SqlSugarTransactionAdo UseTran(); DbResult UseTran(Action action, Action errorCallBack = null); DbResult UseTran(Func action, Action errorCallBack = null); Task> UseTranAsync(Func action, Action errorCallBack = null); Task> UseTranAsync(Func> action, Action errorCallBack = null); IAdo UseStoredProcedure(); } }