0

我有一个方法如下。我正在使用 odbc 与 Oracle 通信。在删除数据和使用 select 语句时,我实际上没有其他方法的问题。

当我点击 cn.open() 行时,我不断收到下面的错误消息。

消息 = "错误 [HYC00] [Oracle][ODBC]可选功能未实现。\r\n错误 [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;
                    }
4

0 回答 0