• OCIEnvCreate 失败,返回代码为 -1,但错误消息文本不可用 问题处理


    OCIEnvCreate 失败,返回代码为 -1,但错误消息文本不可用 问题处理如下:

    解决方法一:更换连接方式

     config 文件配置:

    <add name="MASTER_DB" connectionString="Provider=MSDAORA;Data Source=jhemr;Password=jhemr;User ID=jhemr;" providerName="System.Data.OleDb"/>

    对应的C#程序(需要加入using System.Data.OleDb;)

     public DataSet GetDBDataSet(string DBType, string cmdtxt)
            {
                DataSet dsOrder = new DataSet();
    
                ConnectionStringSettings sDB = ConfigurationManager.ConnectionStrings[DBType];
              
                if (sDB.ProviderName == "System.Data.OracleClient")
                {
                    DbProviderFactory fDB = DbProviderFactories.GetFactory(sDB.ProviderName);
                    #region OracleClient
                    using (DbConnection connDB = fDB.CreateConnection())
                    {
                        connDB.ConnectionString = sDB.ConnectionString;
                        try
                        {
                            connDB.Open();
                            DbCommand cmdDB = connDB.CreateCommand();
                            cmdDB.CommandText = cmdtxt;
                            DbDataAdapter da = fDB.CreateDataAdapter();
                            da.SelectCommand = cmdDB;
                            da.Fill(dsOrder);
                            cmdDB.Connection.Close();
                        }
                        catch (Exception ex)
                        {
                            if (connDB.State == ConnectionState.Open)
                                connDB.Close();
                            throw ex;
                        }
                    }
                    #endregion
                }
                else if (sDB.ProviderName == "System.Data.OleDb")
                {
                    string connectionString = sDB.ConnectionString;
                    using (OleDbConnection connection = new OleDbConnection(connectionString))
                    {
                        try
                        {
                            connection.Open();
                            OleDbCommand command = new OleDbCommand();
                            command.Connection = connection;
                            command.CommandText = cmdtxt;
                            OleDbDataAdapter adapter = new OleDbDataAdapter(command);
                            adapter.Fill(dsOrder, "dsOrder");
                        }
                        catch (Exception ex)
                        {
                            throw ex;
                        }
                        finally
                        {
                            if (connection.State != ConnectionState.Closed)
                            {
                                connection.Close();
                            }
                        }
    
                    }
                }
              
                return dsOrder;
            }
  • 相关阅读:
    正则表达式
    虚拟机winXP试用期已过无法激活问题解决
    model.addattribute()的作用
    model.addAttribute() return @ResponseBody $ajax success data的关系
    bootStrap的使用
    【navicat】navicat导入导出数据库步骤
    【对比】mysql 与 oracle 区别
    oracle错误
    【备忘】船舶的几个吨位概念
    0731
  • 原文地址:https://www.cnblogs.com/mengzhixingping/p/10133121.html
Copyright © 2020-2023  润新知