2013-04-21 77 views
0

任何人都知道如何强制odp.net绑定参数的名称,使用它与企业库?我知道存在BindParameterByName使用OracleCommand,但我使用odp.net与企业库和DbCommand企业库+ Odp.Net BindParameterByName

回答

0

我认为thisthis的帖子可以提供帮助。

他们的第一个告诉你,通过你的自我,延长它像

公共抽象类数据库 { 私人只读DbProviderFactory厂;

protected Database(DbProviderFactory factory) 
{ 
    this.factory = factory; 
} 

public virtual DbCommand CreateCommand(String commandText) 
{ 
    return CreateCommand(CommandType.Text, commandText); 
} 

public virtual DbCommand CreateCommand(CommandType commandType, String commandText) 
{ 
    DbCommand command = factory.CreateCommand(); 
    command.CommandType = commandType; 
    command.Text = commandText; 
    return command; 
} 

public virtual void BindParametersByName(DbCommand command) 
{ 

} 

} 并选择创建一个覆盖默认命令生成或提供按名称绑定参数选择一个Oracle具体实施。

公共类Oracle数据库:数据库 { 公共Oracle数据库() :基座(OracleClientFactory.Instance) {

} 

public override DbCommand CreateCommand(CommandType commandType, String commandText) 
{ 
    DbCommand command = base.CreateCommand(commandType, commandText); 
    BindParametersByName(command); 
    return command; 
} 

public override void BindParametersByName(DbCommand command) 
{ 
    ((OracleCommand)command).BindByName = true; 
} 

}