2015-01-10 2 views
0

Для моего приложения C# мне нужно подключиться к базе данных оракула. Я всегда использовал одно и то же соединение, и он отлично работал с другими приложениями. Добавлена ​​та же самая ссылка, которую я всегда использовал: Oracle.DataAccesПодключение не открывается в визуальной студии

Это проблема, и я не знаю, как ее исправить.

Исключение типа «Oracle.DataAccess.Client.OracleException» произошло в Monime_V2.0.dll, но не был обработан в пользовательском коде

Дополнительная информация: Внешний компонент бросил исключение.

Это то, что я использую для подключения:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 

// Oracle 
using Oracle.DataAccess.Types; 
using Oracle.DataAccess.Client; 

namespace Monime_V2._0 
{ 
    public class Database 
    { 
     protected OracleConnection conn; 
     public OracleConnection Conn 
     { 
     get 
     { 
      return this.conn; 
     } 
    } 

    public Database() 
    { 
     //dbconnectie 
     this.conn = new OracleConnection(); 
     string pcn = "dbi284945"; //login 
     string pw = "HGD7dh8daa"; //password 
     this.conn.ConnectionString = "User Id=" + pcn + ";Password=" + pw + ";Data Source=" + "//192.168.15.50:1521/fhictora" + ";"; 
    } 

Здесь идет все это неправильно:

private List<Account> GetListAccounts() 
    { 
     List<Account> listA = new List<Account>(); 

     string sql = "select * from MT_ACCOUNT"; 
     OracleCommand cmd = new OracleCommand(sql, this.conn); 

     try 
     { 
      this.conn.Open(); // <-- This line of code sends me to the exception catcher 
      OracleDataReader reader = cmd.ExecuteReader(); 
+0

Soчто делает исключение? Вы хотите, чтобы мы догадались, в чем ваша проблема? – nvoigt

+0

Можете ли вы поместить контрольную точку внутри функции Catch() и увидеть исключение? – Eru

+0

Первый блок кавычек, который я опубликовал в моем вопросе, - это все, что я получаю. Так что да, надеюсь, вы, ребята, могли бы догадаться, что может быть проблемой – JustMo06

ответ

-1

Вы должны попробовать этот код public database():

public Database() 
{ 
     //dbconnectie 
     this.conn = new OracleConnection(); 
     string pcn = "dbi284945"; //login 
     string pw = "HGD7dh8daa"; //password 
     string connection = string.Format("User Id ={0};password={1};Data Source=//192.168.15.50:1521/fhictora;",pcn,pw); 
     this.conn.ConnectionString = connection; 
} 
-1

вы иметь управление oracle открыто при запуске вашего кода?

0

Лучший способ устранения этого сообщения об ошибке является использование OracleException:

try 
{ 
    cmd.CommandType = CommandType.Text; 
    dr = cmd.ExecuteReader(); 
} 
catch (OracleException ex) 
{ 
    Console.WriteLine("Record is not inserted into the database table."); 
    Console.WriteLine("Exception Message: " + ex.Message); 
    Console.WriteLine("Exception Source: " + ex.Source); 
} 

Вы получаете более описательный диагноз, в чем проблема. Например, вместо этого бесполезного родового сообщения об ошибке:

Исключения типа 'Oracle.DataAccess.Client.OracleException'

я получаю это:

{ "ORA-06550 : строка 1, столбец 7: \ nPLS-00306: неправильное число или типы аргументов при вызове 'GETCLIENTBYID' \ nORA-06550: строка 1, столбец 7: \ nPL/SQL: Statement игнорируется "}

Смежные вопросы