Common operation of multi-type database-corresponding database operation common method

Source: Internet
Author: User

//==================================================
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

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.