C#多數據庫組件包支持MSSQL+Oracle+MySQL+用戶操作手冊|C/S框架網

我們在開發軟件過程中,特別是基於數據管理應用相關的系統,一般采用一種數據庫,如Microsoft SQL Server,超大型系統有的使用Oracle,部分Web系統采用開源的MySQL等,由於各種業務場景以及用戶需求,促使我們的數據庫系統部署在不同類型的數據庫服務器上。若開發的系統能支持多種數據庫的快速切換,可以為我們減少很多煩惱,同時提高系統的適應性、兼容性以及可擴展性。
C/S框架網為廣大用戶定制開發一套基於C#語言的多數據庫組件包,以及用戶操作手冊。
C#語言多數據庫組件包(支持MSSQL+Oracle+MySQL)
CSFramework.DB.realease.rar
下載鏈接:
https://pan.baidu.com/s/1bmzNVwQ4-F2svTLByIPaQA 密碼:fy9s

《CSFramework.DB用戶操作手冊》.pdf
下載鏈接:
https://pan.baidu.com/s/1rauYthmGjHQ5T8IeLuG0Ww 密碼:1fsu

C# Code:
/// <summary>
/// IDatabase數據庫接口
/// </summary>
public interface IDatabase : IAdoFactory
{
int DefaultPort { get; }
int CommandTimeout { get; }
int ConnectionTimeout { get; }
Type DateTimeType { get; }
DateTime GetServerTime();
String ConnectionString { get; set; }
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 = "");
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();
T ExecuteReader<T>(DbCommand cmd) where T : new();
T ExecuteReader<T>(string SQL) where T : new();
int ExecuteTrans(DbTransaction trans, string SQL);
void Close(DbConnection connection);
}
//來源:C/S框架網(www.csframework.com) QQ:23404761
/// <summary>
/// IDatabase數據庫接口
/// </summary>
public interface IDatabase : IAdoFactory
{
int DefaultPort { get; }
int CommandTimeout { get; }
int ConnectionTimeout { get; }
Type DateTimeType { get; }
DateTime GetServerTime();
String ConnectionString { get; set; }
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 = "");
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();
T ExecuteReader<T>(DbCommand cmd) where T : new();
T ExecuteReader<T>(string SQL) where T : new();
int ExecuteTrans(DbTransaction trans, string SQL);
void Close(DbConnection connection);
}
//來源:C/S框架網(www.csframework.com) QQ:23404761
C# Code:
/// <summary>
/// ADO(ActiveX Data Object)ADO.NET活動數據對象工廠
/// </summary>
public interface IAdoFactory
{
string BuildConnectionString(string server, int port, string dbName, string uid, string pwd, int timeout = 10);
CommandHelper CreateSqlProc(string spName);
CommandHelper CreateCommand(string commandText);
/// <summary>
/// DbCommand的參數符號,@,?
/// </summary>
string ParamSymboName { get; }
DbParameter CreateTimestampParameter(string parameterName, string fieldName);
DbConnection CreateConnection();
DbConnection CreateConnection(string connectionString);
DbCommand CreateCommand(string commandText, CommandType commandType);
DbParameter CreateParameter(string parameterName, object parameterValue);
DbCommandBuilder CreateCommandBuilder();
DbDataAdapter CreateDataAdapter();
DbDataAdapter CreateDataAdapter(AdapterRowUpdatingEvent eventHandler);
}
//來源:C/S框架網(www.csframework.com) QQ:23404761
/// <summary>
/// ADO(ActiveX Data Object)ADO.NET活動數據對象工廠
/// </summary>
public interface IAdoFactory
{
string BuildConnectionString(string server, int port, string dbName, string uid, string pwd, int timeout = 10);
CommandHelper CreateSqlProc(string spName);
CommandHelper CreateCommand(string commandText);
/// <summary>
/// DbCommand的參數符號,@,?
/// </summary>
string ParamSymboName { get; }
DbParameter CreateTimestampParameter(string parameterName, string fieldName);
DbConnection CreateConnection();
DbConnection CreateConnection(string connectionString);
DbCommand CreateCommand(string commandText, CommandType commandType);
DbParameter CreateParameter(string parameterName, object parameterValue);
DbCommandBuilder CreateCommandBuilder();
DbDataAdapter CreateDataAdapter();
DbDataAdapter CreateDataAdapter(AdapterRowUpdatingEvent eventHandler);
}
//來源:C/S框架網(www.csframework.com) QQ:23404761
C# Code:
/// <summary>
/// 數據庫對象工廠
/// </summary>
public static class DatabaseFactory
{
/// <summary>
/// 創建數據庫(使用DataProviderFactory創建數據存取基礎組件,通用版)
/// </summary>
/// <param name="providerType">數據庫類型</param>
/// <param name="connectionString">數據庫連接字符串</param>
/// <returns></returns>
public static IDatabase CreateMDB(DatabaseType providerType, string connectionString)
{
return new DatabaseMDB(providerType, connectionString);
}
/// <summary>
/// 創建SQL Server數據庫
/// </summary>
/// <param name="connectionString">數據庫連接字符串</param>
/// <returns></returns>
public static IDatabase CreateSqlDatabase(string connectionString)
{
return new DatabaseMSSQL(connectionString);
}
/// <summary>
/// 創建MySQL數據庫
/// </summary>
/// <param name="connectionString">數據庫連接字符串</param>
/// <returns></returns>
public static IDatabase CreateMySqlDatabase(string connectionString)
{
return new DatabaseMySQL(connectionString);
}
/// <summary>
/// 創建Oracle數據庫
/// </summary>
/// <param name="connectionString">數據庫連接字符串</param>
/// <returns></returns>
public static IDatabase CreateOracleDatabase(string connectionString)
{
return new DatabaseOracle(connectionString);
}
/// <summary>
/// 創建數據庫
/// </summary>
/// <param name="dbType">數據庫類型</param>
/// <param name="connectionString">數據庫連接字符串</param>
/// <returns></returns>
public static IDatabase CreateDatabase(DatabaseType dbType, string connectionString)
{
if (dbType == DatabaseType.SqlServer)
return new DatabaseMSSQL(connectionString);
if (dbType == DatabaseType.MySQL)
return new DatabaseMySQL(connectionString);
if (dbType == DatabaseType.Oracle)
return new DatabaseOracle(connectionString);
throw new Exception("未支持的數據庫類型!");
}
/// <summary>
/// 創建數據庫
/// </summary>
/// <param name="dbType">數據庫類型</param>
/// <param name="connectionString">數據庫連接字符串</param>
/// <returns></returns>
public static IDatabase CreateDatabase(string dbType, string connectionString)
{
DatabaseType databaseType;
if (!Enum.TryParse<DatabaseType>(dbType, true, out databaseType))
throw new Exception("不支持的數據庫類型!");
if (databaseType == DatabaseType.SqlServer)
return new DatabaseMSSQL(connectionString);
if (databaseType == DatabaseType.MySQL)
return new DatabaseMySQL(connectionString);
if (databaseType == DatabaseType.Oracle)
return new DatabaseOracle(connectionString);
throw new Exception("未支持的數據庫類型!");
}
/// <summary>
/// ADO組件工廠
/// </summary>
/// <param name="dbType">數據庫類型</param>
/// <param name="connectionString">數據連接字符串</param>
/// <returns></returns>
public static IAdoFactory GetADOFactory(DatabaseType dbType, string connectionString)
{
return CreateDatabase(dbType, connectionString);
}
}
//來源:C/S框架網(www.csframework.com) QQ:23404761
/// <summary>
/// 數據庫對象工廠
/// </summary>
public static class DatabaseFactory
{
/// <summary>
/// 創建數據庫(使用DataProviderFactory創建數據存取基礎組件,通用版)
/// </summary>
/// <param name="providerType">數據庫類型</param>
/// <param name="connectionString">數據庫連接字符串</param>
/// <returns></returns>
public static IDatabase CreateMDB(DatabaseType providerType, string connectionString)
{
return new DatabaseMDB(providerType, connectionString);
}
/// <summary>
/// 創建SQL Server數據庫
/// </summary>
/// <param name="connectionString">數據庫連接字符串</param>
/// <returns></returns>
public static IDatabase CreateSqlDatabase(string connectionString)
{
return new DatabaseMSSQL(connectionString);
}
/// <summary>
/// 創建MySQL數據庫
/// </summary>
/// <param name="connectionString">數據庫連接字符串</param>
/// <returns></returns>
public static IDatabase CreateMySqlDatabase(string connectionString)
{
return new DatabaseMySQL(connectionString);
}
/// <summary>
/// 創建Oracle數據庫
/// </summary>
/// <param name="connectionString">數據庫連接字符串</param>
/// <returns></returns>
public static IDatabase CreateOracleDatabase(string connectionString)
{
return new DatabaseOracle(connectionString);
}
/// <summary>
/// 創建數據庫
/// </summary>
/// <param name="dbType">數據庫類型</param>
/// <param name="connectionString">數據庫連接字符串</param>
/// <returns></returns>
public static IDatabase CreateDatabase(DatabaseType dbType, string connectionString)
{
if (dbType == DatabaseType.SqlServer)
return new DatabaseMSSQL(connectionString);
if (dbType == DatabaseType.MySQL)
return new DatabaseMySQL(connectionString);
if (dbType == DatabaseType.Oracle)
return new DatabaseOracle(connectionString);
throw new Exception("未支持的數據庫類型!");
}
/// <summary>
/// 創建數據庫
/// </summary>
/// <param name="dbType">數據庫類型</param>
/// <param name="connectionString">數據庫連接字符串</param>
/// <returns></returns>
public static IDatabase CreateDatabase(string dbType, string connectionString)
{
DatabaseType databaseType;
if (!Enum.TryParse<DatabaseType>(dbType, true, out databaseType))
throw new Exception("不支持的數據庫類型!");
if (databaseType == DatabaseType.SqlServer)
return new DatabaseMSSQL(connectionString);
if (databaseType == DatabaseType.MySQL)
return new DatabaseMySQL(connectionString);
if (databaseType == DatabaseType.Oracle)
return new DatabaseOracle(connectionString);
throw new Exception("未支持的數據庫類型!");
}
/// <summary>
/// ADO組件工廠
/// </summary>
/// <param name="dbType">數據庫類型</param>
/// <param name="connectionString">數據連接字符串</param>
/// <returns></returns>
public static IAdoFactory GetADOFactory(DatabaseType dbType, string connectionString)
{
return CreateDatabase(dbType, connectionString);
}
}
//來源:C/S框架網(www.csframework.com) QQ:23404761
相關文章:
如何使用多數據庫IDatabase接口以及數據訪問層應用
