Переменная 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
Мобильная версия