Отключение базы данных Oracle SQL при попытке прочитать результаты запроса, ManagerDataAcessC#

Место общения программистов C#
Ответить
Anonymous
 Отключение базы данных Oracle SQL при попытке прочитать результаты запроса, ManagerDataAcess

Сообщение Anonymous »

Привет, у меня довольно сложная ситуация с работой. Я пытаюсь программно получить доступ к базе данных Oracle SQL моей работы, чтобы получить информацию. Соединение открыто, и я могу просматривать сеанс в Oracle SQL DEVELOPER, используя V$SESSION, но когда я пытаюсь отправить запрос или прочитать результат, удаленный хост разрывает соединение.Я использую C# и библиотеку ManagerDataAcess, потому что база данных довольно старая, работает под управлением Oracle SQL 10, и это единственная библиотека, которую я нашел, которая позволяет мне указать SID и фактически позволяет мне подключиться к БД.
Переменная Connection имеет тип OracleConnection
Затем я назначаю запрос строке
String query = "SELECT note FROM TABLE_NAME WHERE..."
Затем я создаю команду
OracleCommand cmd = new Oracle command(query, connection);
Создайте программу чтения и запустите ее
OracleDataReader reader = cmd.ExecuteReader();
В этот момент и во всех точках до подключения свойства.State возвращает значение «Открыть»
Но как только я вызываю Reader.Read () соединение закрывается, точная ошибка варьируется, но наиболее распространенными являются ORA-12570 и ORA-03135, которые почти ничего мне не говорят, кроме того, что удаленный хост прервал соединение
Я предполагаю, что это произошло что-то связано с тем, что БД такая старая.
Будем очень признательны за любые идеи или опыт.
Спасибо.
А также, если кому-то интересно, что моя работа планирует заменить его, но не раньше, чем через 9 месяцев.
Я убедился, что строка подключения верна.
  • Пытался изменить свойства «Проверка соединения» и «Объединение» в строке подключения.
  • Пытался использовать другие библиотеки Oracle SQL, но ни одна из них не позволяла мне даже подключиться к БД. .
Прилагается несколько упрощенная версия кода
private void Initialize()
{
string connectionString = "Data Source = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST =[hostname])(PORT =[port]))(CONNECT_DATA =(SID =[sid]))); User Id =[login]; Password =[password];"

try
{
connection = new OracleConnection();
connection.ConnectionString = connectionString;
connection.Open();

MessageBox.Show(connection.State.ToString());
connection.Close();
}
catch (Oracle.ManagedDataAccess.Client.OracleException ex)
{
MessageBox.Show(ex.Message);
}
}

public string Select()
{
string query = "SELECT NOTE FROM [TableName] WHERE [cond]";
//Create a list to store the result
string note;
//at this point the connection is closed
//Open connection
if (this.OpenConnection() == true) //here the connection is open
{
//Create Command
OracleCommand cmd = new OracleCommand(query, connection);

//Create a data reader and Execute the command
OracleDataReader reader;
MessageBox.Show(cmd.CommandText);
reader = cmd.ExecuteReader();

//right here the connection is still open
//Read the data and store them in the list
if (reader.Read())//right here is where the exception is thrown and the connection is closed
{
note = reader["NOTE"] + "";
}
else
{

}
//close Data Reader
reader.Close();

//close Connection
this.CloseConnection();

//return list to be displayed
return note;
}
else
{
return "";
}
}



Подробнее здесь: https://stackoverflow.com/questions/791 ... anagerdata
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»