我有一个方法如下。我正在使用odbc与Oracle进行通信。在删除数据和使用select语句时,我实际上没有其他方法的问题。
当我点击cn.open()行时,我一直收到以下错误信息。
Message =“ERROR [HYC00] [Oracle] [ODBC]未实现可选功能。\ r \ nERROR [HY000] [Oracle] [ODBC] MTS支持不可用,无法加载ORAMTS.DLL”
关于如何解决此问题的任何想法?
public int WriteToOracleDb(IList<ExcelData> mn)
{
int totalCount = 0;
string connect = ConfigurationManager.ConnectionStrings["myconnect"].ConnectionString;
try
{
using (TransactionScope scope = new TransactionScope())
{
string sqlIns = "insert into u_generic_data ( " +
"businessunitcode, generic_job_id, row_status, row_message, customernumber," +
"productcode, numbervalue1, numbervalue2, numbervalue3, numbervalue4" + "," +
"values (" +
":businessunitcode, :generic_job_id, :row_status, :row_message, :customernumber" + "," +
":productcode, :numbervalue1, :numbervalue2, :numbervalue3, :numbervalue4" + ")";
OdbcConnection cn = new OdbcConnection(connect);
OdbcCommand cmdIns = new OdbcCommand(sqlIns, cn);
cn.Open();
for (int i = 0; i < mn.Count; i++)
{
cmdIns.Parameters.AddWithValue("businessunitcode", mn[i].BusinessUnitCode);
cmdIns.Parameters.AddWithValue("generic_job_id", mn[i].GenericJobId);
cmdIns.Parameters.AddWithValue("row_status", mn[i].RowStatus);
cmdIns.Parameters.AddWithValue("row_message", mn[i].RowMessage);
cmdIns.Parameters.AddWithValue("customernumber", mn[i].CustomerNumber);
cmdIns.Parameters.AddWithValue("productcode", mn[i].ProductCode);
cmdIns.Parameters.AddWithValue("numbervalue1", mn[i].NumberValue1);
cmdIns.Parameters.AddWithValue("numbervalue2", mn[i].NumberValue2);
cmdIns.Parameters.AddWithValue("numbervalue3", mn[i].NumberValue3);
cmdIns.Parameters.AddWithValue("numbervalue4", mn[i].NumberValue4);
cmdIns.ExecuteNonQuery();
cmdIns.Parameters.Clear();
}
scope.Complete();
cn.Close();
totalCount = mn.Count();
}
}
catch(Exception ex)
{
//resModel.ErrorMessages = ex.Message.ToString();
}
return totalCount;
}