456 lines
14 KiB
C#
456 lines
14 KiB
C#
|
using System;
|
|||
|
using System.Data;
|
|||
|
using System.Data.SqlClient;
|
|||
|
using System.Data.OracleClient;
|
|||
|
using System.Data.OleDb;
|
|||
|
using MySql.Data.MySqlClient;
|
|||
|
using System.Data.SQLite;
|
|||
|
|
|||
|
namespace Easy4net.DBUtility
|
|||
|
{
|
|||
|
/// <summary>
|
|||
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
/// </summary>
|
|||
|
public class DbFactory
|
|||
|
{
|
|||
|
|
|||
|
private DbFactory()
|
|||
|
{
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD><EFBFBD>ʹ<EFBFBD><CDB4><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ݿ<DDBF><E2B9A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
/// </summary>
|
|||
|
/// <param name="connectionString"><3E><><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD></param>
|
|||
|
/// <param name="dbType"><3E><><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD><EFBFBD><EFBFBD></param>
|
|||
|
/// <returns></returns>
|
|||
|
public static DbFactory NewInstance(string connectionString, DatabaseType dbType)
|
|||
|
{
|
|||
|
DbFactory factory = new DbFactory();
|
|||
|
factory.connectionString = connectionString;
|
|||
|
factory.dbType = dbType;
|
|||
|
factory.DbParmChar = factory.CreateDbParmCharacter();
|
|||
|
|
|||
|
return factory;
|
|||
|
}
|
|||
|
|
|||
|
private string connectionString;
|
|||
|
private DatabaseType dbType;
|
|||
|
private string dbParmChar;
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// <20><><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
/// </summary>
|
|||
|
public DatabaseType DbType
|
|||
|
{
|
|||
|
get { return dbType; }
|
|||
|
set { value = dbType; }
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// <20><><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
|
|||
|
/// </summary>
|
|||
|
public string ConnectionString
|
|||
|
{
|
|||
|
get { return connectionString; }
|
|||
|
set { value = connectionString; }
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<C7B0>ַ<EFBFBD>
|
|||
|
/// </summary>
|
|||
|
public string DbParmChar
|
|||
|
{
|
|||
|
get { return dbParmChar; }
|
|||
|
set { dbParmChar = value; }
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
/// <20><><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>еIJ<D0B5><C4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>oracleΪ":",sqlserverΪ"@"
|
|||
|
/// </summary>
|
|||
|
/// <returns></returns>
|
|||
|
public string CreateDbParmCharacter()
|
|||
|
{
|
|||
|
string character = string.Empty;
|
|||
|
|
|||
|
switch (dbType)
|
|||
|
{
|
|||
|
case DatabaseType.SQLSERVER:
|
|||
|
character = "@";
|
|||
|
break;
|
|||
|
case DatabaseType.ORACLE:
|
|||
|
character = ":";
|
|||
|
break;
|
|||
|
case DatabaseType.MYSQL:
|
|||
|
character = "?";
|
|||
|
break;
|
|||
|
case DatabaseType.ACCESS:
|
|||
|
character = "@";
|
|||
|
break;
|
|||
|
case DatabaseType.SQLITE:
|
|||
|
character = "@";
|
|||
|
break;
|
|||
|
default:
|
|||
|
throw new Exception("<22><><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD><EFBFBD><EFBFBD>Ŀǰ<C4BF><C7B0>֧<EFBFBD>֣<EFBFBD>");
|
|||
|
}
|
|||
|
|
|||
|
return character;
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD><EFBFBD>ͺʹ<CDBA><CDB4><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
/// <20><><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD><EFBFBD>Ӷ<EFBFBD><D3B6><EFBFBD>
|
|||
|
/// </summary>
|
|||
|
/// <returns></returns>
|
|||
|
public IDbConnection CreateDbConnection()
|
|||
|
{
|
|||
|
IDbConnection conn = null;
|
|||
|
switch (dbType)
|
|||
|
{
|
|||
|
case DatabaseType.SQLSERVER:
|
|||
|
conn = new SqlConnection(connectionString);
|
|||
|
break;
|
|||
|
case DatabaseType.ORACLE:
|
|||
|
conn = new OracleConnection(connectionString);
|
|||
|
break;
|
|||
|
case DatabaseType.MYSQL:
|
|||
|
conn = new MySqlConnection(connectionString);
|
|||
|
break;
|
|||
|
case DatabaseType.ACCESS:
|
|||
|
conn = new OleDbConnection(connectionString);
|
|||
|
break;
|
|||
|
case DatabaseType.SQLITE:
|
|||
|
conn = new SQLiteConnection(connectionString);
|
|||
|
break;
|
|||
|
default:
|
|||
|
throw new Exception("<22><><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD><EFBFBD><EFBFBD>Ŀǰ<C4BF><C7B0>֧<EFBFBD>֣<EFBFBD>");
|
|||
|
}
|
|||
|
|
|||
|
return conn;
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
/// </summary>
|
|||
|
/// <returns></returns>
|
|||
|
public IDbCommand CreateDbCommand()
|
|||
|
{
|
|||
|
IDbCommand cmd = null;
|
|||
|
switch (dbType)
|
|||
|
{
|
|||
|
case DatabaseType.SQLSERVER:
|
|||
|
cmd = new SqlCommand();
|
|||
|
break;
|
|||
|
case DatabaseType.ORACLE:
|
|||
|
cmd = new OracleCommand();
|
|||
|
break;
|
|||
|
case DatabaseType.MYSQL:
|
|||
|
cmd = new MySqlCommand();
|
|||
|
break;
|
|||
|
case DatabaseType.ACCESS:
|
|||
|
cmd = new OleDbCommand();
|
|||
|
break;
|
|||
|
case DatabaseType.SQLITE:
|
|||
|
cmd = new SQLiteCommand();
|
|||
|
break;
|
|||
|
default:
|
|||
|
throw new Exception("<22><><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD><EFBFBD><EFBFBD>Ŀǰ<C4BF><C7B0>֧<EFBFBD>֣<EFBFBD>");
|
|||
|
}
|
|||
|
|
|||
|
return cmd;
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
/// </summary>
|
|||
|
/// <returns></returns>
|
|||
|
public IDbDataAdapter CreateDataAdapter()
|
|||
|
{
|
|||
|
IDbDataAdapter adapter = null;
|
|||
|
switch (dbType)
|
|||
|
{
|
|||
|
case DatabaseType.SQLSERVER:
|
|||
|
adapter = new SqlDataAdapter();
|
|||
|
break;
|
|||
|
case DatabaseType.ORACLE:
|
|||
|
adapter = new OracleDataAdapter();
|
|||
|
break;
|
|||
|
case DatabaseType.MYSQL:
|
|||
|
adapter = new MySqlDataAdapter();
|
|||
|
break;
|
|||
|
case DatabaseType.ACCESS:
|
|||
|
adapter = new OleDbDataAdapter();
|
|||
|
break;
|
|||
|
case DatabaseType.SQLITE:
|
|||
|
adapter = new SQLiteDataAdapter();
|
|||
|
break;
|
|||
|
default:
|
|||
|
throw new Exception("<22><><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD><EFBFBD><EFBFBD>Ŀǰ<C4BF><C7B0>֧<EFBFBD>֣<EFBFBD>");
|
|||
|
}
|
|||
|
|
|||
|
return adapter;
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
/// <20>ʹ<EFBFBD><CDB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
/// </summary>
|
|||
|
/// <returns></returns>
|
|||
|
public IDbDataAdapter CreateDataAdapter(IDbCommand cmd)
|
|||
|
{
|
|||
|
IDbDataAdapter adapter = null;
|
|||
|
switch (dbType)
|
|||
|
{
|
|||
|
case DatabaseType.SQLSERVER:
|
|||
|
adapter = new SqlDataAdapter((SqlCommand)cmd);
|
|||
|
break;
|
|||
|
case DatabaseType.ORACLE:
|
|||
|
adapter = new OracleDataAdapter((OracleCommand)cmd);
|
|||
|
break;
|
|||
|
case DatabaseType.MYSQL:
|
|||
|
adapter = new MySqlDataAdapter((MySqlCommand)cmd);
|
|||
|
break;
|
|||
|
case DatabaseType.ACCESS:
|
|||
|
adapter = new OleDbDataAdapter((OleDbCommand)cmd);
|
|||
|
break;
|
|||
|
case DatabaseType.SQLITE:
|
|||
|
adapter = new SQLiteDataAdapter((SQLiteCommand)cmd);
|
|||
|
break;
|
|||
|
default: throw new Exception("<22><><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD><EFBFBD><EFBFBD>Ŀǰ<C4BF><C7B0>֧<EFBFBD>֣<EFBFBD>");
|
|||
|
}
|
|||
|
|
|||
|
return adapter;
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD>ݿ<EFBFBD><DDBF>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
/// </summary>
|
|||
|
/// <returns></returns>
|
|||
|
public IDbDataParameter CreateDbParameter()
|
|||
|
{
|
|||
|
IDbDataParameter param = null;
|
|||
|
switch (dbType)
|
|||
|
{
|
|||
|
case DatabaseType.SQLSERVER:
|
|||
|
param = new SqlParameter();
|
|||
|
break;
|
|||
|
case DatabaseType.ORACLE:
|
|||
|
param = new OracleParameter();
|
|||
|
break;
|
|||
|
case DatabaseType.MYSQL:
|
|||
|
param = new MySqlParameter();
|
|||
|
break;
|
|||
|
case DatabaseType.ACCESS:
|
|||
|
param = new OleDbParameter();
|
|||
|
break;
|
|||
|
case DatabaseType.SQLITE:
|
|||
|
param = new SQLiteParameter();
|
|||
|
break;
|
|||
|
default:
|
|||
|
throw new Exception("<22><><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD><EFBFBD><EFBFBD>Ŀǰ<C4BF><C7B0>֧<EFBFBD>֣<EFBFBD>");
|
|||
|
}
|
|||
|
|
|||
|
return param;
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD>ݿ<EFBFBD><DDBF>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
/// </summary>
|
|||
|
/// <returns></returns>
|
|||
|
public IDbDataParameter CreateDbParameter(string paramName, object value)
|
|||
|
{
|
|||
|
if (dbType == DatabaseType.ACCESS || dbType == DatabaseType.SQLITE)
|
|||
|
{
|
|||
|
paramName = "@" + paramName;
|
|||
|
}
|
|||
|
|
|||
|
IDbDataParameter param = CreateDbParameter();
|
|||
|
param.ParameterName = paramName;
|
|||
|
param.Value = value;
|
|||
|
|
|||
|
return param;
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD>ݿ<EFBFBD><DDBF>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
/// </summary>
|
|||
|
/// <returns></returns>
|
|||
|
public IDbDataParameter CreateDbParameter(string paramName, object value, DbType _dataType)
|
|||
|
{
|
|||
|
if (dbType == DatabaseType.ACCESS || dbType == DatabaseType.SQLITE)
|
|||
|
{
|
|||
|
paramName = "@" + paramName;
|
|||
|
}
|
|||
|
|
|||
|
IDbDataParameter param = CreateDbParameter();
|
|||
|
param.DbType = _dataType;
|
|||
|
param.ParameterName = paramName;
|
|||
|
param.Value = value;
|
|||
|
|
|||
|
return param;
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD>ݿ<EFBFBD><DDBF>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
/// </summary>
|
|||
|
/// <returns></returns>
|
|||
|
public IDbDataParameter CreateDbParameter(string paramName, object value, ParameterDirection direction)
|
|||
|
{
|
|||
|
if (dbType == DatabaseType.ACCESS || dbType == DatabaseType.SQLITE)
|
|||
|
{
|
|||
|
paramName = "@" + paramName;
|
|||
|
}
|
|||
|
|
|||
|
IDbDataParameter param = CreateDbParameter();
|
|||
|
param.Direction = direction;
|
|||
|
param.ParameterName = paramName;
|
|||
|
param.Value = value;
|
|||
|
|
|||
|
return param;
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD>ݿ<EFBFBD><DDBF>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
/// </summary>
|
|||
|
/// <returns></returns>
|
|||
|
public IDbDataParameter CreateDbParameter(string paramName, object value, int size, ParameterDirection direction)
|
|||
|
{
|
|||
|
if (dbType == DatabaseType.ACCESS || dbType == DatabaseType.SQLITE)
|
|||
|
{
|
|||
|
paramName = "@" + paramName;
|
|||
|
}
|
|||
|
|
|||
|
IDbDataParameter param = CreateDbParameter();
|
|||
|
param.Direction = direction;
|
|||
|
param.ParameterName = paramName;
|
|||
|
param.Value = value;
|
|||
|
param.Size = size;
|
|||
|
|
|||
|
return param;
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD>ݿ<EFBFBD><DDBF>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
/// </summary>
|
|||
|
/// <returns></returns>
|
|||
|
public IDbDataParameter CreateDbOutParameter(string paramName, int size)
|
|||
|
{
|
|||
|
if (dbType == DatabaseType.ACCESS || dbType == DatabaseType.SQLITE)
|
|||
|
{
|
|||
|
paramName = "@" + paramName;
|
|||
|
}
|
|||
|
|
|||
|
IDbDataParameter param = CreateDbParameter();
|
|||
|
param.Direction = ParameterDirection.Output;
|
|||
|
param.ParameterName = paramName;
|
|||
|
param.Size = size;
|
|||
|
|
|||
|
return param;
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD>ݿ<EFBFBD><DDBF>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
/// </summary>
|
|||
|
/// <returns></returns>
|
|||
|
public IDbDataParameter CreateDbParameter(string paramName, object value, DbType _dataType, ParameterDirection direction)
|
|||
|
{
|
|||
|
if (dbType == DatabaseType.ACCESS || dbType == DatabaseType.SQLITE)
|
|||
|
{
|
|||
|
paramName = "@" + paramName;
|
|||
|
}
|
|||
|
|
|||
|
IDbDataParameter param = CreateDbParameter();
|
|||
|
param.Direction = direction;
|
|||
|
param.DbType = _dataType;
|
|||
|
param.ParameterName = paramName;
|
|||
|
param.Value = value;
|
|||
|
|
|||
|
return param;
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
/// <20>ʹ<EFBFBD><CDB4><EFBFBD><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD>ݿ<EFBFBD><DDBF>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
/// </summary>
|
|||
|
/// <returns></returns>
|
|||
|
public IDbDataParameter[] CreateDbParameters(int size)
|
|||
|
{
|
|||
|
int i = 0;
|
|||
|
IDbDataParameter[] param = null;
|
|||
|
switch (dbType)
|
|||
|
{
|
|||
|
case DatabaseType.SQLSERVER:
|
|||
|
param = new SqlParameter[size];
|
|||
|
while (i < size) { param[i] = new SqlParameter(); i++; }
|
|||
|
break;
|
|||
|
case DatabaseType.ORACLE:
|
|||
|
param = new OracleParameter[size];
|
|||
|
while (i < size) { param[i] = new OracleParameter(); i++; }
|
|||
|
break;
|
|||
|
case DatabaseType.MYSQL:
|
|||
|
param = new MySqlParameter[size];
|
|||
|
while (i < size) { param[i] = new MySqlParameter(); i++; }
|
|||
|
break;
|
|||
|
case DatabaseType.ACCESS:
|
|||
|
param = new OleDbParameter[size];
|
|||
|
while (i < size) { param[i] = new OleDbParameter(); i++; }
|
|||
|
break;
|
|||
|
case DatabaseType.SQLITE:
|
|||
|
param = new SQLiteParameter[size];
|
|||
|
while (i < size) { param[i] = new SQLiteParameter(); i++; }
|
|||
|
break;
|
|||
|
default:
|
|||
|
throw new Exception("<22><><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD><EFBFBD><EFBFBD>Ŀǰ<C4BF><C7B0>֧<EFBFBD>֣<EFBFBD>");
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
return param;
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
/// </summary>
|
|||
|
/// <returns></returns>
|
|||
|
public IDbTransaction CreateDbTransaction()
|
|||
|
{
|
|||
|
IDbConnection conn = CreateDbConnection();
|
|||
|
|
|||
|
if (conn.State == ConnectionState.Closed)
|
|||
|
{
|
|||
|
conn.Open();
|
|||
|
}
|
|||
|
|
|||
|
return conn.BeginTransaction();
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
/// </summary>
|
|||
|
/// <param name="level"></param>
|
|||
|
/// <returns></returns>
|
|||
|
public IDbTransaction CreateDbTransaction(System.Data.IsolationLevel level)
|
|||
|
{
|
|||
|
IDbConnection conn = CreateDbConnection();
|
|||
|
|
|||
|
if (conn.State == ConnectionState.Closed)
|
|||
|
{
|
|||
|
conn.Open();
|
|||
|
}
|
|||
|
|
|||
|
return conn.BeginTransaction(level);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|