using System;
using System.Collections.Generic;
using System.Text;
using System.Data.Common;
using System.Data;
using System.Xml;
namespace Ant.Data
{
///
/// 数据库访问接口
///
public interface DataAccess : IDisposable
{
#region Property & method
///
/// 数据库连接字符串
///
string ConnectionString { get; set; }
///
/// 获取数据库类型
///
DatabaseType DatabaseType { get; }
///
/// 数据库是否关闭//是:已经关闭,否:未关闭;
///
bool IsClosed { get; }
///
/// 数据库连接是否不可用
///
bool IsUnEnable { get; }
///
/// 事务
///
DbTransaction Trans { get; }
///
/// 打开数据库连接
///
void Open();
///
/// 关闭数据库连接
///
void Close();
///
/// 开启一个事务
///
void BeginTransaction();
///
/// 提交一个事务
///
void Commit();
///
/// 回滚一个事务
///
void RollBack();
#endregion
#region ExecuteNonQuery
int ExecuteNonQuery(string commandText);
int ExecuteNonQuery(string commandText, CommandType commandType);
int ExecuteNonQuery(string commandText, QueryParameterCollection Parameters);
int ExecuteNonQuery(string commandText, CommandType commandType, QueryParameterCollection Parameters);
#endregion
#region ExecuteDataReader
DbDataReader ExecuteDataReader(string commandText);
DbDataReader ExecuteDataReader(string commandText, CommandType commandType);
DbDataReader ExecuteDataReader(string commandText, QueryParameterCollection Parameters);
DbDataReader ExecuteDataReader(string commandText, CommandType commandType, QueryParameterCollection Parameters);
DbDataReader ExecuteReader(string cmdText, DbParam[] parameters, CommandType cmdType);
DbDataReader ExecuteReader(string cmdText, DbParam[] parameters, CommandBehavior be, CommandType cmdType);
#endregion
object ExecuteScalar(string commandText, DbParam[] parameters);
object ExecuteScalar(string commandText, DbParam[] parameters, System.Data.CommandType commandType);
int ExecuteNonQuery(string commandText, DbParam[] Parameters);
#region ExecuteDataTable
DataTable ExecuteDataTable(string commandText);
DataTable ExecuteDataTable(string commandText, CommandType commandType);
DataTable ExecuteDataTable(string commandText, QueryParameterCollection Parameters);
DataTable ExecuteDataTable(string commandText, CommandType commandType, QueryParameterCollection Parameters);
DataTable ExecuteDataTable(string commandText, CommandType commandType, QueryParameterCollection Parameters, string tableName);
DataTable ExecuteDataTable(string commandText, int startRecord, int maxRecords);
DataTable ExecuteDataTable(string commandText, CommandType commandType, int startRecord, int maxRecords);
DataTable ExecuteDataTable(string commandText, QueryParameterCollection Parameters, int startRecord, int maxRecords);
DataTable ExecuteDataTable(string commandText, QueryParameterCollection Parameters, string tableName);
DataTable ExecuteDataTable(string commandText, CommandType commandType, QueryParameterCollection Parameters, int startRecord, int maxRecords);
DataTable ExecuteDataTable(string commandText, CommandType commandType, QueryParameterCollection Parameters, string tableName, int startRecord, int maxRecords);
#endregion
#region ExecuteDataSet
DataSet ExecuteDataSet(string commandText);
DataSet ExecuteDataSet(string commandText, CommandType commandType);
DataSet ExecuteDataSet(string commandText, QueryParameterCollection Parameters);
DataSet ExecuteDataSet(string commandText, QueryParameterCollection Parameters, string tableName);
DataSet ExecuteDataSet(string commandText, CommandType commandType, QueryParameterCollection Parameters);
DataSet ExecuteDataSet(string commandText, CommandType commandType, QueryParameterCollection Parameters, string tableName);
DataSet ExecuteDataSet(string commandText, int startRecord, int maxRecords);
DataSet ExecuteDataSet(string commandText, CommandType commandType, int startRecord, int maxRecords);
DataSet ExecuteDataSet(string commandText, QueryParameterCollection Parameters, int startRecord, int maxRecords);
DataSet ExecuteDataSet(string commandText, CommandType commandType, QueryParameterCollection Parameters, int startRecord, int maxRecords);
DataSet ExecuteDataSet(string commandText, CommandType commandType, QueryParameterCollection Parameters, string tableName, int startRecord, int maxRecords);
#endregion
#region ExecuteDataView
///
/// 视图
///
///
///
///
///
///
///
///
DataView ExecuteDataView(string commandText, CommandType commandType, QueryParameterCollection Parameters, string tableName, int startRecord, int maxRecords);
#endregion
#region ExecuteScalar
///
/// 执行查询,并返回查询所返回的结果集中第一行的第一列。忽略额外的列或行。
///
/// SQL命令文本
/// 查询所返回的结果集中第一行的第一列
object ExecuteScalar(string commandText);
///
/// 执行查询,并返回查询所返回的结果集中第一行的第一列。忽略额外的列或行。
///
/// SQL命令文本
/// 命令类型
/// 查询所返回的结果集中第一行的第一列
object ExecuteScalar(string commandText, CommandType commandType);
///
/// 执行查询,并返回查询所返回的结果集中第一行的第一列。忽略额外的列或行。
///
/// SQL命令文本
/// 参数集合
/// 查询所返回的结果集中第一行的第一列
object ExecuteScalar(string commandText, QueryParameterCollection parameters);
///
/// 执行查询,并返回查询所返回的结果集中第一行的第一列。忽略额外的列或行。
///
///
/// 命令类型
/// 参数集合
/// 查询所返回的结果集中第一行的第一列
object ExecuteScalar(string commandText, CommandType commandType, QueryParameterCollection parameters);
#endregion
#region 验证SQL语句是否正确
bool ValidateSQL(string sql);
#endregion
}
}