📄 oledbfactory.cs
字号:
using System;
using System.Data;
using System.Data.Common;
namespace DataAccess
{
/// <summary>
/// OleDbFactory: OleDb具体工厂
/// </summary>
public class OleDbFactory : DbFactory
{
public OleDbFactory() {}
public override IDbConnection CreateConnection()
{
return new System.Data.OleDb.OleDbConnection();
}
public override IDbConnection CreateConnection(string connectionString)
{
return new System.Data.OleDb.OleDbConnection(connectionString);
}
public override IDbDataAdapter CreateAdapter()
{
return new System.Data.OleDb.OleDbDataAdapter();
}
public override IDbDataAdapter CreateAdapter(IDbCommand selectCommand)
{
return new System.Data.OleDb.OleDbDataAdapter((System.Data.OleDb.OleDbCommand)selectCommand);
}
public override IDbDataAdapter CreateAdapter(string selectCommandText, IDbConnection selectConnection)
{
return new System.Data.OleDb.OleDbDataAdapter(selectCommandText, (System.Data.OleDb.OleDbConnection)selectConnection);
}
public override IDbDataAdapter CreateAdapter(string selectCommandText, string selectConnectionString)
{
return new System.Data.OleDb.OleDbDataAdapter(selectCommandText, selectConnectionString);
}
public override IDbCommand CreateCommand()
{
return new System.Data.OleDb.OleDbCommand();
}
public override IDbCommand CreateCommand(string cmdText)
{
return new System.Data.OleDb.OleDbCommand(cmdText);
}
public override IDbCommand CreateCommand(string cmdText, IDbConnection connection)
{
return new System.Data.OleDb.OleDbCommand(cmdText, (System.Data.OleDb.OleDbConnection)connection);
}
public override IDbCommand CreateCommand(string cmdText, IDbConnection connection, IDbTransaction transaction)
{
return new System.Data.OleDb.OleDbCommand(cmdText, (System.Data.OleDb.OleDbConnection)connection, (System.Data.OleDb.OleDbTransaction)transaction);
}
public override DbCommandBuilder CreateCommandBuilder()
{
return new DataAccess.OleDbCommandBuilder();
}
public override DbCommandBuilder CreateCommandBuilder(IDbDataAdapter adapter)
{
return new DataAccess.OleDbCommandBuilder(adapter);
}
protected override void AppendItem(IDbCommand cmd, ConditionList.ConditionItem item, bool bFirst)
{
if(bFirst)
cmd.CommandText += " WHERE";
else
cmd.CommandText += " AND";
if(item.FieldValue is DBNull)
cmd.CommandText += String.Format(" {0} IS NULL", item.FieldName);
else if(item.Relation == '%')
cmd.CommandText += String.Format(" {0} LIKE '%{1}%'", item.FieldName, item.FieldValue);
else
{
cmd.CommandText += String.Format(" {0} {1} ?", item.FieldName, item.Relation);
IDbDataParameter param = cmd.CreateParameter();
param.SourceColumn = item.FieldName;
param.Value = item.FieldValue;
cmd.Parameters.Add(param);
}
}
public override void AppendCommandCondition(IDbCommand cmd, string clause, string fieldName, String relation, object fieldValue)
{
IDbDataParameter param = cmd.CreateParameter();
param.SourceColumn = fieldName;
param.ParameterName = "p" + (nParam++);
param.Value = fieldValue;
cmd.CommandText += String.Format(" {0} {1} {2} ?", clause, fieldName, relation);
cmd.Parameters.Add(param);
}
public override IDbCommand CreateIdentityGetter(string tableName)
{
throw new ApplicationException("Function Not Implemented");
}
public override IDbInitiationHelper CreateInitiationHelper( IDbConnection connection )
{
return new OleDbInitiationHelper(connection);
}
public override IDbInitiationHelper CreateInitiationHelper( string connectionString )
{
return new OleDbInitiationHelper(connectionString);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -