Низ за свързване към Oracle 10g DB с помощта на VB.net

Здравейте всички, аз съм МНОГО нов в Oracle DB и се опитвам да се свържа с него чрез VB.net 2010. Опитвам следното:

Dim myConnection As OleDbConnection
Dim myCommand As OleDbCommand
Dim dr As OleDbDataReader

    myConnection = New OleDbConnection("Provider=MSDAORA.1;UserID=xxxx;password=xxxx; database=xxxx")
    'MSDORA is the provider when working with Oracle
    Try
        myConnection.Open()
        'opening the connection
        myCommand = New OleDbCommand("Select * from emp", myConnection)
        'executing the command and assigning it to connection
        dr = myCommand.ExecuteReader()
        While dr.Read()
            'reading from the datareader
            MessageBox.Show("EmpNo" & dr(0))
            MessageBox.Show("EName" & dr(1))
            MessageBox.Show("Job" & dr(2))
            MessageBox.Show("Mgr" & dr(3))
            MessageBox.Show("HireDate" & dr(4))
            'displaying data from the table
        End While
        dr.Close()
        myConnection.Close()
    Catch ee As Exception
    End Try

И получавам грешката на реда Catch ee As Exception: ORA-12560: TNS: грешка на адаптера на протокол

Имам и файл tnsnames.ora на моя компютър, но не съм сигурен дали трябва да го използвам при свързване (или наистина, как също)? Нужен ли е за горния код?

Опитвам се да използвам връзка без DNS към DB. Не сте сигурни дали това е, което прави в това или не?

Всяка помощ би била чудесна!!! :о)

Дейвид


person StealthRT    schedule 26.01.2011    source източник


Отговори (2)


Има много начини: този, който използвам почти всеки път и който не изисква запис в TNSNAMES.ORA, е следният:

Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=MyHost)(PORT=MyPort)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=MyOracleSID)));User Id=myUsername;Password=myPassword;

И ако нямате нужда от OleDb връзка, мисля, че трябва да използвате System.Data.OracleClient или друг безплатен доставчик (като DevArt dotConnect за Oracle Express)

Източник: http://www.connectionstrings.com/oracle

person Keeper    schedule 26.01.2011
comment
Значи така? myConnection = New OleDbConnection(Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=MyHost)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=MyOracleSID))); Потребителско име=xxx;Парола=xxx;) - person StealthRT; 26.01.2011
comment
Ако искате да използвате OleDbConnection, просто добавете Provider=MSDAORA.1; или използвайте адаптер на Oracle. Не забравяйте да промените хоста, порта (ако не използвате този по подразбиране) и името на услугата. - person Keeper; 26.01.2011
comment
Страхотно, разбрах пазач! БЛАГОДАРЯ! :) - person StealthRT; 26.01.2011

Винаги използвам www.connectionstrings.com/, когато трябва да създам нов низ за свързване към DB и когато свързване формат на низ не ми е на главата.

person Community    schedule 27.01.2011