我是一位c#SQL Server開發人員Oracle新手入門編程。下面的代碼用於將cmdText設置爲:「select * from myTable」。我想現在把它放在一個存儲過程中,我需要關於如何編寫這個Oracle存儲過程的幫助,並在我的c#代碼中得到結果到一個DataTable中。謝謝。代碼:c#從Oracle商店程序返回結果集並填充一個DataTable
private DbProviderFactory DbFactory
{
get
{
dbProviderFactory = dbProviderFactory ?? DbProviderFactories.GetFactory(providerInvariantName);
return dbProviderFactory;
}
}
public DataTable ExecDataTable(string cmdText, params IDataParameter[] cmdParams)
{
DataTable resultDT = new DataTable();
using (DbConnection dbConn = DbFactory.CreateConnection())
{
dbConn.ConnectionString = connectionString;
using (DbCommand dbCmd = DbFactory.CreateCommand())
{
dbCmd.CommandText = cmdText;
dbCmd.Connection = dbConn;
try
{
dbConn.Open();
if (cmdParams != null)
{
dbCmd.Parameters.AddRange(cmdParams);
}
using (DbDataAdapter dbDA = DbFactory.CreateDataAdapter())
{
dbDA.SelectCommand = dbCmd;
dbDA.Fill(resultDT);
}
}
finally
{
dbConn.Close();
}
}
}
return resultDT;
}
注意:connectionString,providerInvariantName先前在代碼中設置。
另外重構我的代碼的任何意見表示讚賞這是我採取的方法來支持ODP.net和ODBC連接到現場需要的Oracle。
更新
我能得到這個工作使用:
new Oracle.DataAccess.Client.OracleParameter("result", Oracle.DataAccess.Client.OracleDbType.RefCursor, ParameterDirection.Output);
不過,我似乎無法得到一個通用的解決方案使用的DbParameter或的IDataParameter上班我怎麼做到支持ODBC和ODP.net?
謝謝,我如何在C#中使用它?並填寫DataTable? – m3ntat 2009-08-20 12:32:16