Вход на сайт
C#+Oracle
26.04.06 10:36
Пытаюсь приконнектится к Oracle-базе - получаю ошибку. Посмотрите, что не так ?
string myConnection = "User Id=xxx;Password=xxx;Data Source=111.111.111.111:8080:My_Oracle_DB;Integrated Security=yes";
con_Oracle = new OracleConnection(myConnection);
OracleCommand com_Oracle = new OracleCommand("SELECT * FROM My_Table",con_Oracle);
DataSet ds = new DataSet();
if(con_Oracle != null) con_Oracle.Open();
OracleDataAdapter adapter = new OracleDataAdapter(com_Oracle);
adapter.Fill(ds,"My_DS");
if(con_Oracle.State == ConnectionState.Open) con_Oracle.Close();
dataGrid.DataSource = ds.Tables[0];
Спасибо.
string myConnection = "User Id=xxx;Password=xxx;Data Source=111.111.111.111:8080:My_Oracle_DB;Integrated Security=yes";
con_Oracle = new OracleConnection(myConnection);
OracleCommand com_Oracle = new OracleCommand("SELECT * FROM My_Table",con_Oracle);
DataSet ds = new DataSet();
if(con_Oracle != null) con_Oracle.Open();
OracleDataAdapter adapter = new OracleDataAdapter(com_Oracle);
adapter.Fill(ds,"My_DS");
if(con_Oracle.State == ConnectionState.Open) con_Oracle.Close();
dataGrid.DataSource = ds.Tables[0];
Спасибо.
NEW 26.04.06 13:12
в ответ NikolaiB 26.04.06 11:22
1. А чем на неë можно ещë законнектится ?
У меня, кроме C#, нет ничего.
------
В командной строке или все же Studio 2003? Если в Studuo - CTRL+ALT+S...
2.
Studio 2003 or C#-Builder: System.Data.OracleClient requires Oracle client software version 8.1.7 or greater.
Понятно, что версия не та, а что сделать можно ?
------
Драйвера оракловские обновить. Проще всего - поставить клиента. Если я правильно помню, то ему (выше 8.1.7) еще и Java сановская нужна будет.
У меня, кроме C#, нет ничего.
------
В командной строке или все же Studio 2003? Если в Studuo - CTRL+ALT+S...
2.
Studio 2003 or C#-Builder: System.Data.OracleClient requires Oracle client software version 8.1.7 or greater.
Понятно, что версия не та, а что сделать можно ?
------
Драйвера оракловские обновить. Проще всего - поставить клиента. Если я правильно помню, то ему (выше 8.1.7) еще и Java сановская нужна будет.
NEW 26.04.06 13:17
в ответ toptop 26.04.06 13:09
.NET кажется вылечили от этого, хотя Билли не очень любит для чужих продуктов чего встраивать.
------
Вообще-то это было для MS SQL или Access...
Может и вылечили, но раз уж наработана методика обхода - буду обходить, пока не препрет до такой степени, что обойти будет никак... Это как с Солнышком - ...каждое утро всходит и каждый вечер заходит? - Да! - Ну наверное так и должнно быть - не трогай там ничего...
------
Вообще-то это было для MS SQL или Access...


NEW 26.04.06 20:46
в ответ NikolaiB 26.04.06 12:34
в vs 2005 точно есть:-)
насчет vs 2003 сразу и не вспомню. Там было что-то, наподобие Database Projects / Database References / Server Explorer
вот тут посмотри:
http://msdn2.microsoft.com/en-us/library/xexk8kx3(VS.80).aspx
но это (msdn2) , скорее всего, тоже только для vs 2005 8-)
насчет vs 2003 сразу и не вспомню. Там было что-то, наподобие Database Projects / Database References / Server Explorer
вот тут посмотри:
http://msdn2.microsoft.com/en-us/library/xexk8kx3(VS.80).aspx
но это (msdn2) , скорее всего, тоже только для vs 2005 8-)
28.04.06 15:16
в ответ Tomasson 26.04.06 20:46
Ни фига не выходит
Поставил клиента версии 10 - скачал надурняк с оракловского сайта
Сервeр, зараза, версии 8.05
Поменял фаилы listener.ora, sqlnet.ora, tnsnames.ora
Теперь, если
string ServerLocation = "xxx";
string ServerPort = "xxx";
string DataBaseName = "xxx";
string UserName = "xxx";
string Password = "xxx";
string ServerProtokol = "tcp";
string Connection_String = "Data Source="+DataBaseName+";"+"User Id="+UserName+";Password="+Password+";";
OracleConnection oracle_Connection = new OracleConnection(Connection_String);
try
{
if(oracle_Connection != null) oracle_Connection.Open();
}
catch(Exception ex)
{
MessageBox.Show(ex.Message,"");
}
finally
{
if(oracle_Connection.State == ConnectionState.Open) oracle_Connection.Close();
}
то выползает следующая ошибка
ORA-12154: TNS:could not resolve the connect identifier specified
если же
string myConnection = "Data Source=XXX;User ID=XXX;Password=XXX;";
Oracle.DataAccess.Client.OracleConnection con = new Oracle.DataAccess.Client.OracleConnection(myConnection);
if(con != null) con.Open();
if(con.State == ConnectionState.Open) con.Close();
то выползает немного другое
ORA-03134: Connections to this server version are no longer supported.
Cause: An attempt was made to connect to an Oracle server of older version.
Action: Please refer to documentation for more details.
Наверное, дело действительно в несоответствии версий клента и сервера
Думаю, надо поискать клиента версии 8, может, кто подскажет, где эту сволочь найти ?
Спасибо
Поставил клиента версии 10 - скачал надурняк с оракловского сайта
Сервeр, зараза, версии 8.05
Поменял фаилы listener.ora, sqlnet.ora, tnsnames.ora
Теперь, если
string ServerLocation = "xxx";
string ServerPort = "xxx";
string DataBaseName = "xxx";
string UserName = "xxx";
string Password = "xxx";
string ServerProtokol = "tcp";
string Connection_String = "Data Source="+DataBaseName+";"+"User Id="+UserName+";Password="+Password+";";
OracleConnection oracle_Connection = new OracleConnection(Connection_String);
try
{
if(oracle_Connection != null) oracle_Connection.Open();
}
catch(Exception ex)
{
MessageBox.Show(ex.Message,"");
}
finally
{
if(oracle_Connection.State == ConnectionState.Open) oracle_Connection.Close();
}
то выползает следующая ошибка
ORA-12154: TNS:could not resolve the connect identifier specified
если же
string myConnection = "Data Source=XXX;User ID=XXX;Password=XXX;";
Oracle.DataAccess.Client.OracleConnection con = new Oracle.DataAccess.Client.OracleConnection(myConnection);
if(con != null) con.Open();
if(con.State == ConnectionState.Open) con.Close();
то выползает немного другое
ORA-03134: Connections to this server version are no longer supported.
Cause: An attempt was made to connect to an Oracle server of older version.
Action: Please refer to documentation for more details.
Наверное, дело действительно в несоответствии версий клента и сервера
Думаю, надо поискать клиента версии 8, может, кто подскажет, где эту сволочь найти ?
Спасибо
NEW 28.04.06 15:34
в ответ NikolaiB 28.04.06 15:16
string Connection_String = "Data Source="+DataBaseName+";"+"User Id="+UserName+";Password="+Password+";";
string myConnection = "Data Source=XXX;User ID=XXX;Password=XXX;";
Data Source - это сервер, а не DataBaseName.
http://msdn.microsoft.com/library/en-us/cpref/html/frlrfSystemDataOracleClientOr...
В MSDN используют такую ConnectionString:
myConnection = "Data Source=Oracle8i;Integrated Security=yes";
string myConnection = "Data Source=XXX;User ID=XXX;Password=XXX;";
Data Source - это сервер, а не DataBaseName.
http://msdn.microsoft.com/library/en-us/cpref/html/frlrfSystemDataOracleClientOr...
В MSDN используют такую ConnectionString:
myConnection = "Data Source=Oracle8i;Integrated Security=yes";
NEW 28.04.06 16:05
в ответ Tomasson 28.04.06 15:34
Можно, конечно, и так :
string myConnection = "Data Source=111.222.333.444:1521:DataBase;User ID=user;Password=password;";
но в оракловской документации на клиент написано, что лучше переписать файлы : listener.ora, sqlnet.ora и tnsnames.ora
Тогда можно пользоваться алиасом. Так и получается :
string myConnection = "Data Source=DB_alias;User ID=user;Password=password;";
Или я что-то неправильно понял ?
string myConnection = "Data Source=111.222.333.444:1521:DataBase;User ID=user;Password=password;";
но в оракловской документации на клиент написано, что лучше переписать файлы : listener.ora, sqlnet.ora и tnsnames.ora
Тогда можно пользоваться алиасом. Так и получается :
string myConnection = "Data Source=DB_alias;User ID=user;Password=password;";
Или я что-то неправильно понял ?