Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

278
Vistas
Conexión a Oracle mediante Oracle.ManagedDataAccess

Estoy usando Oracle.ManagedDataAccess Nuget Package Versión 12.1.022 en mi proyecto C# (.NET 4.0). El paquete crea automáticamente entradas en el archivo app.config. ¿Cómo puedo leer la cadena de origen de datos de este archivo para poder conectarme a la base de datos?

System.Configuration.ConfigurationManager.AppSettings.Get("fuente de datos");

no me funciona

 <?xml version="1.0" encoding="utf-8"?> <configuration> <configSections> <section name="oracle.manageddataaccess.client" type="OracleInternal.Common.ODPMSectionHandler, Oracle.ManagedDataAccess, Version=4.121.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342" /> </configSections> <system.data> <DbProviderFactories> <remove invariant="Oracle.ManagedDataAccess.Client" /> <add name="ODP.NET, Managed Driver" invariant="Oracle.ManagedDataAccess.Client" description="Oracle Data Provider for .NET, Managed Driver" type="Oracle.ManagedDataAccess.Client.OracleClientFactory, Oracle.ManagedDataAccess, Version=4.121.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342" /> </DbProviderFactories> </system.data> <runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <publisherPolicy apply="no" /> <assemblyIdentity name="Oracle.ManagedDataAccess" publicKeyToken="89b483f429c47342" culture="neutral" /> <bindingRedirect oldVersion="4.121.0.0 - 4.65535.65535.65535" newVersion="4.121.2.0" /> </dependentAssembly> </assemblyBinding> </runtime> <oracle.manageddataaccess.client> <version number="*"> <dataSources> <dataSource alias="MyDataSource" descriptor="(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=100.100.100.100)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=myservice.com)))" /> </dataSources> </version> </oracle.manageddataaccess.client> </configuration>
over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Por lo general, haría referencia al alias en una cadena de conexión estándar:

 <connectionStrings> <add name="MyConnection" connectionString="Data Source=MyDataSource;User Id=scott;Password=tiger;"/> </connectionStrings>

Entonces usaría el método estándar para recuperar la cadena:

 ConfigurationManager.ConnectionStrings["MyConnection"].ConnectionString;

También tenga en cuenta que el alias en la sección de fuente de datos es opcional. Puede incrustar el descriptor directamente en la cadena de conexión:

 <connectionStrings> <add name="MyConnection" connectionString="Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=100.100.100.100)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=myservice.com)));User Id=scott;Password=tiger;"/> </connectionStrings>

También puede hacer referencia a alias en un archivo tnsnames.ora. De forma predeterminada, el controlador busca un tnsnames.ora en la carpeta exe, un directorio especificado en una variable de entorno TNS_ADMIN o la variable de configuración TNS_ADMIN:

http://docs.oracle.com/cd/E48297_01/doc/win.121/e41125/featConfig.htm#autoId6 http://docs.oracle.com/cd/E48297_01/doc/win.121/e41125/featConfig .htm#autoId7

over 4 years ago · Santiago Trujillo Denunciar

0

Puede hacer referencia a la fuente de datos ya definida en la cadena de conexión

 <oracle.manageddataaccess.client> <version number="*"> <dataSources> <dataSource alias="MyDataSource" descriptor="(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=100.100.100.100)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=myservice.com)))" /> </dataSources> </version> </oracle.manageddataaccess.client>

por ejemplo, en este caso específico:

 public class OracleDBManager { private OracleConnection _con; private const string connectionString = "User Id={0};Password={1};Data Source=MyDataSource;"; private const string OracleDBUser = "exampleUser"; private const string OracleDBPassword = "examplePassword"; public OracleDBManager() { InitializeDBConnection(); } ~OracleDBManager() { if (_con != null) { _con.Close(); _con.Dispose(); _con = null; } } private void InitializeDBConnection() { _con = new OracleConnection(); _con.ConnectionString = string.Format(connectionString, OracleDBUser, OracleDBPassword); _con.Open(); } }
over 4 years ago · Santiago Trujillo Denunciar

0

Puede crear un archivo de clase separado que devuelva la cadena de conexión de esta manera:

 public class OracleDbConnection { public static OracleConnection GetConnection() { const string connectionString = "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521)) (CONNECT_DATA=(SERVICE_NAME=PROD))); User Id=userId;Password=password;"; var connection=new OracleConnection(connectionString); return connection; } }

Luego puede llamarlo así donde necesita acceder a Oracle db-

 var oracleConnection = OracleDbConnection.GetConnection(); oracleConnection.Open();
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda