0
好的我使用了DbClass,因此我可以同時使用Oracle和SQL,而不必使用2個不同的dill,我只需傳遞連接和提供程序即可。 這是我正在打開的連接:在c#中使用DbCommand執行命令#
public class CdpsiUpdateSql : IDisposable
{
private DbTransaction _myTransaction;
bool disposed = false;
SafeHandle handle = new SafeFileHandle(IntPtr.Zero, true);
public DbConnection OraConnection { get; set; }
public CdpsiUpdateSql(string Provider, string connectionString)
{
//this.OraConnection = OpenDbConnection(connectionString);
string constr = connectionString;
DbProviderFactory factory =
DbProviderFactories.GetFactory(Provider);
DbConnection conn = factory.CreateConnection();
conn.ConnectionString = constr;
conn.Open();
this.OraConnection = conn;
}
但現在我需要使用該連接(OraConnection),我有一個執行命令的另一個DLL,執行多個命令,我有這樣的功能:
private bool ExecComando(string comando, CdpsiUpdateSql Updater, string log)
{
Database db = DatabaseFactory.CreateDatabase();
string sql = comando;
DbCommand cmd = db.GetSqlStringCommand(sql);
cmd.Connection = Updater.OraConnection;
try
{
linhas = cmd.ExecuteNonQuery();
return false;
}
catch (DbException exp)
{
Logg("Erro a executar o comando: " + comando, log);
Logg("Descrição do erro: " + exp.ToString(), log);
cmd.Dispose();
return true;
}
}
它引發一個異常,要求設置需要配置文件的DatabaseProviderFactory。 我找不到任何有關這方面的結論,因爲信息在這個課堂上真的很蹩腳。 如果測試時有任何相關性,我使用提供程序>「Oracle.ManagedDataAccess.Client」,使用第一種方法的連接工作正常,它會成功連接。 我需要使用什麼來執行命令? 任何幫助表示讚賞,非常感謝你
我現在會測試它,謝謝 – LikeIfYouCaredAboutMyName
它的工作。我不敢相信這是這麼簡單:o非常感謝你 – LikeIfYouCaredAboutMyName
很高興幫助你! – bastio84