using System;
|
using System.Collections.Generic;
|
using System.Data;
|
using System.Data.Common;
|
|
namespace CSFramework.DB
|
{
|
/// <summary>
|
/// 数据库接口
|
/// </summary>
|
public interface IDatabase : IAdoFactory, IDbMetalQuery
|
{
|
DatabaseType DatabaseType { get; }
|
|
int DefaultPort { get; }
|
|
int CommandTimeout { get; }
|
|
int ConnectionTimeout { get; }
|
|
Type DateTimeType { get; }
|
|
string ConnectionString { get; set; }
|
|
/// <summary>
|
/// MSSQL,Oracle,MySQL数据库类型转换为通用的System.Data.DbType
|
/// </summary>
|
/// <param name="sourceType">MSSQL,Oracle,MySQL数据库类型</param>
|
/// <returns></returns>
|
DbType ToDbType(string sourceType);
|
|
/// <summary>
|
/// MSSQL,Oracle,MySQL数据库类型转换为通用的.NET对象类型(Type)
|
/// </summary>
|
/// <param name="sourceType">MSSQL,Oracle,MySQL数据库类型</param>
|
/// <returns></returns>
|
Type ToNetType(string sourceType);
|
|
DateTime GetServerTime();
|
|
DbTransaction TransBegin();
|
|
void TransCommit(DbTransaction trans, bool closeConnection = false);
|
|
void TransRollback(DbTransaction trans, bool closeConnection = false);
|
|
DataSet GetDataSet(string SQL);
|
|
DataSet GetDataSet(DbCommand cmd);
|
|
DataSet GetDataSet(string text, CommandType type,
|
IDataParameter[] paras);
|
|
DataTable GetTable(string SQL, string tableName = "");
|
|
/// <summary>
|
/// 获取指定记录条数的数据
|
/// </summary>
|
/// <param name="top">记录条数</param>
|
/// <param name="tableName">表名</param>
|
/// <param name="fields">字段列表,如:ID,Name,Price</param>
|
/// <param name="where">查询条件SQL命令参数</param>
|
/// <param name="orderBy">排序,如:ID DESC,若有多个排序,参考:ID DESC,Name ASC。注意不能带Order By关键词</param>
|
/// <returns></returns>
|
DataTable GetTop(int top, string tableName, string fields = "",
|
List<DbParameter> where = null, string orderBy = "");
|
|
DataTable GetTable(DbCommand cmd, string tableName = "");
|
|
DataRow GetDataRow(string SQL);
|
|
int ExecuteSQL(string SQL);
|
|
int ExecuteCommand(DbCommand cmd);
|
|
object ExecuteScalar(string SQL);
|
|
object ExecuteScalar(DbCommand cmd);
|
|
DbDataReader ExecuteReader(string SQL);
|
|
DbDataReader ExecuteReader(DbCommand cmd);
|
|
List<T> ExecuteReader<T>(string SQL, Func<DbDataReader, T> action)
|
where T : new();
|
|
List<T> ExecuteReader<T>(DbCommand cmd, Func<DbDataReader, T> action)
|
where T : new();
|
|
List<T> ExecuteReaderList<T>(string SQL) where T : new();
|
|
List<T> ExecuteReaderList<T>(DbCommand cmd) where T : new();
|
|
List<string> GetStringList(string SQL);
|
|
List<string> GetStringList(DbCommand cmd);
|
|
T ExecuteReader<T>(DbCommand cmd) where T : new();
|
|
T ExecuteReader<T>(string SQL) where T : new();
|
|
int ExecuteTrans(DbTransaction trans, string SQL);
|
|
int ExecuteTrans(DbTransaction trans, DbCommand cmd);
|
|
void Close(DbConnection connection);
|
|
/// <summary>
|
/// 返回包含参数符号的参数名称,比如:@Code, :Code, ?p_Code
|
/// </summary>
|
/// <param name="paramName"></param>
|
/// <returns></returns>
|
string ParseParamName(string paramName);
|
|
/// <summary>
|
/// 获取当前表最新(最大)的自增字段值
|
/// </summary>
|
/// <param name="tableName">表名</param>
|
/// <returns></returns>
|
int GetMaxID(string tableName);
|
|
bool UpdateDataSet(DataTable ds, string tableName, string KEY);
|
|
|
bool InstDataSet(DataTable ds, string tableName);
|
}
|
}
|