русский
Germany.ruForen → Архив Досок→ Programmierung

C#+Oracle

367  1 2 alle
NikolaiB посетитель26.04.06 10:36
NikolaiB
NEW 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];
Спасибо.
#1 
Murr коренной житель26.04.06 11:09
Murr
NEW 26.04.06 11:09 
in Antwort NikolaiB 26.04.06 10:36
1. Чем-нибудь другим на ту же базу законнектится можешь?
2. Оберни все в try...catch и запость что за ошибка получается.
#2 
toptop знакомое лицо26.04.06 11:16
NEW 26.04.06 11:16 
in Antwort NikolaiB 26.04.06 10:36
Я вот так коннектился - проблем не было. Сервер в локале.
В ответ на:
Provider=OraOLEDB.Oracle;Data Source=<Service Name>;Persist Security Info=True;User ID=xxx;Password=yyy;

#3 
NikolaiB посетитель26.04.06 11:22
NikolaiB
26.04.06 11:22 
in Antwort Murr 26.04.06 11:09
1. А чем на неë можно ещë законнектится ?
У меня, кроме C#, нет ничего.
2.
Studio 2003 or C#-Builder: System.Data.OracleClient requires Oracle client software version 8.1.7 or greater.
Понятно, что версия не та, а что сделать можно ?
#4 
toptop знакомое лицо26.04.06 11:26
NEW 26.04.06 11:26 
in Antwort NikolaiB 26.04.06 11:22
Так клиентский софт поставить на комп. Там Net Manager всякие и доступ к TNS сервису настроить. Без этого никак.
#5 
NikolaiB посетитель26.04.06 11:37
NikolaiB
NEW 26.04.06 11:37 
in Antwort toptop 26.04.06 11:26
Спасибо, ну тогда пошëл клиента для Oracle искать
#6 
  Tomasson мумеиси26.04.06 12:16
NEW 26.04.06 12:16 
in Antwort NikolaiB 26.04.06 11:22
А чем на не? можно ещ? законнектится ?
Visual Studio --> Database Browser?
#7 
NikolaiB посетитель26.04.06 12:34
NikolaiB
NEW 26.04.06 12:34 
in Antwort Tomasson 26.04.06 12:16
Это где ж такой зверь находится ?
#8 
Murr коренной житель26.04.06 13:06
Murr
NEW 26.04.06 13:06 
in Antwort toptop 26.04.06 11:16
Я как-то разок сталкивался с тем, что мелкософтовский драйвер... хммм... не помню, из под чего дергаемый... не понимал строку подключения, если поменян порядок ключей. С тех пор строки подключения только копи-пастятся из udl-файлов...
#9 
toptop знакомое лицо26.04.06 13:09
NEW 26.04.06 13:09 
in Antwort Murr 26.04.06 13:06
.NET кажется вылечили от этого, хотя Билли не очень любит для чужих продуктов чего встраивать.
#10 
toptop знакомое лицо26.04.06 13:10
NEW 26.04.06 13:10 
in Antwort NikolaiB 26.04.06 11:37
Скажи админу, пускай установит.
Или сам дистибутивный диск возьми - там есть.
#11 
Murr коренной житель26.04.06 13:12
Murr
NEW 26.04.06 13:12 
in Antwort 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 сановская нужна будет.
#12 
Murr коренной житель26.04.06 13:17
Murr
26.04.06 13:17 
in Antwort toptop 26.04.06 13:09
.NET кажется вылечили от этого, хотя Билли не очень любит для чужих продуктов чего встраивать.
------
Вообще-то это было для MS SQL или Access... Может и вылечили, но раз уж наработана методика обхода - буду обходить, пока не препрет до такой степени, что обойти будет никак... Это как с Солнышком - ...каждое утро всходит и каждый вечер заходит? - Да! - Ну наверное так и должнно быть - не трогай там ничего...
#13 
NikolaiB посетитель26.04.06 15:46
NikolaiB
NEW 26.04.06 15:46 
in Antwort Murr 26.04.06 13:17
Всем спасибо - будем изучать Oracle
#14 
  Tomasson мумеиси26.04.06 20:46
NEW 26.04.06 20:46 
in Antwort 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-)
#15 
NikolaiB посетитель28.04.06 15:16
NikolaiB
NEW 28.04.06 15:16 
in Antwort 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, может, кто подскажет, где эту сволочь найти ?
Спасибо
#16 
  Tomasson мумеиси28.04.06 15:34
NEW 28.04.06 15:34 
in Antwort 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";
#17 
NikolaiB посетитель28.04.06 16:05
NikolaiB
NEW 28.04.06 16:05 
in Antwort 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;";
Или я что-то неправильно понял ?
#18 
  Tomasson мумеиси28.04.06 16:12
NEW 28.04.06 16:12 
in Antwort NikolaiB 28.04.06 16:05
не знаю, я с Oracle никогда не работал.
У вас админ есть, который все это настраивает?
Или какие-то приложения, которые обращаются к Oracle DB...
#19 
NikolaiB посетитель28.04.06 16:26
NikolaiB
NEW 28.04.06 16:26 
in Antwort Tomasson 28.04.06 16:12
Да нет админа
Да и программеры все на PHP ваяют, я один как тополь на Плющихе с дот нетом - а оракл-база хрен знает где в интернете расположена
Не задание, а головная боль сплошная
4 дня не могу к базе подключится
#20 
1 2 alle