Member 3730224 Ответов: 1

Oracle database connection - ошибка при открытии соединения


Я работаю над функцией массовой загрузки, для которой я использовал Oracle.DataAccess и созданное соединение, до прошлой недели оно работало нормально, но теперь вдруг я получаю ошибку "System.NullReferenceException: ссылка на объект не установлена на экземпляр объекта." когда я пытаюсь открыть соединение с помощью объекта соединения, например connObject.Open. Я скопировал фрагмент кода ниже.

Что я уже пробовал:

public bool WriteToServer(string qualifiedDBName, DataTable dataTable)
    {
        OracleConnection objOracleCon = null;
        try
        {
            string connectionString = System.Configuration.ConfigurationManager.ConnectionStrings["OracleConnection"].ToString();
            objOracleCon = new OracleConnection(connectionString);
            if (objOracleCon != null)
            {
                if (objOracleCon.State == ConnectionState.Closed)
                {
                    objOracleCon.Open();
                }
                using (OracleBulkCopy bulkCopy = new OracleBulkCopy(objOracleCon))
                {
                    bulkCopy.BatchSize = 100000;
                    bulkCopy.BulkCopyTimeout = 20000;
                    bulkCopy.DestinationTableName = qualifiedDBName;
                    bulkCopy.WriteToServer(dataTable);
                    bulkCopy.Close();
                    bulkCopy.Dispose();
                    objOracleCon.Dispose();
                }
            }
        }
        catch (Exception exc)
        {
            return false;
        }
        finally
        {
            if (objOracleCon.State == ConnectionState.Open)
            {
                objOracleCon.Close();
            }
        }
        return true;
    }

1 Ответов

Рейтинг:
1

Richard MacCutchan

Ты звонишь Close на ваше objOracleCon объект в вашем finally блок, но вы избавились от этого объекта в своем using блок выше.