2010-11-06 3 views
7

Я пытаюсь подключиться к базе данных оракула с моего сайта (asp.net-mvc). Единственная информация, которую я должен подключиться к базе данных ODBC инструкции, говорит мне идти:Инструкции odbc для подключения к oracle

  1. Он говорит идти в каталог оракула на машине и ввести это в TSNNames.ora файл и ввести это в:

    DBNAME=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=[machine])(port=[port])) 
        (CONNECT_DATA=(SID=[DBNAME]))) 
    
  2. , а затем перейти на панель управления и вручную добавить соединение с помощью мастера GUI.

В любом случае, я могу подключиться к этой базе данных, не задумываясь над этим? Я надеялся просто вставить строку подключения и быть в пути. Я развертываю на разных машинах, и я не хочу, чтобы вам пришлось обновлять файлы .ora или проходить через эту настройку мастера графического интерфейса.

У кого-нибудь есть предложение для меня?

+0

ПРИМЕЧАНИЕ: SID = DBNAME, а не имя пользователя. – Gaius

ответ

9

Не используйте ODBC. ODP.NET драйвер обеспечивает Oracle, которая основана на той же модели, как SQL Server: просто загрузите сборку, ссылку на него в проекте и использовать его:

using (var conn = new OracleConnection("Some connection string")) 
    using (var cmd = conn.CreateCommand()) 
    { 
     conn.Open(); 
     cmd.CommandText = "SELECT id FROM foo"; 
     using (var reader = cmd.ExecuteReader()) 
     { 
      while (reader.Read()) 
      { 
      int id = reader.GetInt32(0); 
      } 
     } 
    }  
+0

См. [Этот stackoverflow] (http://stackoverflow.com/questions/659341/the-provider-is-not-compatible-with-the-version-of-oracle-client) для получения подробной информации о минимальном наборе требуемых библиотек для распространения. –

2

Согласно аналогичному вопросу Manually connecting to database in Asp.net MVC, в этом нет никакой магии. Просто подключитесь к db, как обычно.

Есть пример VB @http://www.aspdev.org/articles/asp.net-mysql-connect/ Это для MySql, но должно быть достаточно простым, чтобы переключиться на строку соединения с Oracle.

+0

Может кто-нибудь объяснить нижестоящий? Не понял ли я этот вопрос? – Farray

+0

Я думал, что это был достаточно справедливый ответ – DaveDev

+0

Упрощенный, чтобы компенсировать необоснованный нижний уровень. –

0

Существует как минимум один поставщик ado.net для Oracle, для которого на компьютере не требуется клиент Oracle. См. http://www.devart.com/dotconnect/oracle/. Devart называет эту функцию «прямым режимом». Этот специфический поставщик Oracle также, вероятно, будет работать намного лучше, чем поставщик odbc.

Но что-то я не понимаю? Вы создали приложение asp.net mvc, поэтому вам нужно только установить его на сервер. Так в чем проблема?