//==================================================
Author: lims
Date: 2012/03/06
Description: Describes the functions and background information required to complete this document, etc.
//==================================================
Using System;
Using System.Collections;
Using System.Data;
Using System.Text;
Using System.Data.Common;
Using System.Data.OleDb;
Using System.Collections.Generic;
Using System.Reflection;
Using Microsoft.Practices.EnterpriseLibrary.Data;
Using EFWCoreLib.CoreFrame.Orm;
Namespace EFWCoreLib.CoreFrame.DbProvider
{
[Serializable]
Public abstract class Abstractdatabase
{
<summary>
Database connection
</summary>
protected DbConnection connection = null;//database connection
<summary>
Database object Execution Commands
</summary>
protected DbCommand command = NULL;
<summary>
Enterprise Library database Access Objects
</summary>
public database = null;
#region Properties
<summary>
Database transactions
</summary>
Protected dbtransaction transaction = null;//database transaction
protected string _connstring;
<summary>
Returns the database connection string
</summary>
public string ConnectionString
{
get {return _connstring;}
}
protected bool IsInTransaction = false;//is in the transaction
<summary>
Returns whether it is in a transaction
</summary>
protected bool IsInTransaction
{
get {return this.isintransaction;}
}
public int WorkID {get; set;}
Key of the connection database configured in the Entlib.config configuration file
public string Dbkey {get; set;}
Plug-in Name
public string Pluginname {get; set;}
Database type
Public DatabaseType DbType {get; set;}
public abstract void testdbconnection ();
#endregion
<summary>
Start a transaction
</summary>
public abstract void BeginTransaction ();
<summary>
Commit a transaction
</summary>
public abstract void CommitTransaction ();
<summary>
Rolling back a transaction
</summary>
public abstract void RollbackTransaction ();
Inserting a record #region execution applies to columns that have auto-generated identities
public abstract int Insertrecord (string commandtext);
#endregion
#region Return a DataTable
Public abstract DataTable getdatatable (string commandtext);
Public abstract DataTable getdatatable (string storeprocedurename, params object[] parameters);
#endregion
#region Returns a DataReader
Public abstract IDataReader Getdatareader (string commandtext);
#endregion
#region executes a statement that returns the execution status
public abstract int DoCommand (string commandtext);
public abstract int DoCommand (string storeprocedurename, params object[] parameters);
#endregion
#region executes a command to return a data result
Public abstract Object Getdataresult (string commandtext);
Public abstract Object Getdataresult (string storeprocedurename, params object[] parameters);
#endregion
Public abstract DataSet GetDataSet (string storeprocedurename, params object[] parameters);
#if! CSHARP30
Public ienumerable<dynamic> Query (String sql, Object param)
{
Connection = database. CreateConnection ();
return connection. Query (Pluginname,sql, param);
}
#else
Public ienumerable<idictionary<string, object>> Query (String sql, Object param)
{
Connection = database. CreateConnection ();
return connection. Query (SQL, param);
}
#endif
Public ienumerable<t> query<t> (String sql, Object param)
{
Connection = database. CreateConnection ();
return connection. Query<t> (pluginname,sql, param, NULL, true, NULL, NULL);
}
Public ienumerable<treturn> Query<tfirst, Tsecond, treturn> (String sql, Func<tfirst, Tsecond, TReturn > Map, Object param)
{
Connection = database. CreateConnection ();
return connection. Query<tfirst, Tsecond, treturn> (pluginname,sql, map, param, NULL, true, "Id", NULL, NULL);
}
Public ienumerable<treturn> Query<tfirst, Tsecond, Tthird, treturn> (String sql, Func<tfirst, TSecond, Tthird, treturn> map, object param)
{
Connection = database. CreateConnection ();
return connection. Query<tfirst, Tsecond, Tthird, treturn> (pluginname,sql, map, param, NULL, true, "Id", NULL, NULL);
}
Public ienumerable<treturn> Query<tfirst, Tsecond, Tthird, Tfourth, treturn> (String sql, Func<tfirst, Tsecond, Tthird, Tfourth, treturn> map, object param)
{
Connection = database. CreateConnection ();
return connection. Query<tfirst, Tsecond, Tthird, Tfourth, treturn> (pluginname,sql, map, param, NULL, true, "Id", NULL, NULL);
}
Public EFWCoreLib.CoreFrame.Orm.SqlMapper.GridReader querymultiple (String sql, Object param)
{
Connection = database. CreateConnection ();
return connection. Querymultiple (SQL, param, NULL, NULL, NULL);
}
}
}
Common operation of multi-type database-corresponding database operation common method