none
como conectar mi base de datos RRS feed

  • Pregunta

  • amigos buenas noches haber si me pueden ayudar con esto, tengo mi cadena de conexion que es asi

     

    namespace Libreria
    {
        public class CBD
        {
            public string StringConDB()
            {
                #region conexion a la base de datos
            //    return "Data Source=192.168.1.2;Initial Catalog=notaria;User ID=admin;pwd=1234;";
               return "Data Source=xx.xx.xxx.xx;Initial Catalog=notaria;User ID=admin;pwd=1234;";
      
            }

    }

    y funciona bien mi problema es que yo lo trabajo en forma remota y mis usuarios en forma local ellos entran por el 192.168.1.2 pero para yo entrar desde mi casa tengo que cambiar la conexion y ponerle como comentario a la conexion local para poder accesar como puedo hacer para ponerlo los dos sin tener que estar modificando osea si estoy en mi casa que se active automaticamente la conexion remota sin estar modificando la conexion yo estaba pensando en un if o un case pero no se como utilizarlo si me pueden ayudar gracias.

    jueves, 24 de agosto de 2017 4:45

Respuestas

  • Hola

    Te recomendaría poner la cadena de conexión en un archivo App.config puedes obtener la cadena de conexión por medio de una key para así poder modificarla.

    <connectionStrings>
      <add name="default" connectionString="Data Source=.;Initial Catalog=Prueba;Integrated Security=True"/>
    </connectionStrings>

    Revisa este articulo Archivos de Configuración - Una introducción (1/3)

    Puedes modificar la cadena de conexión de la siguiente manera

    public static void BuilConnectionString(string DataSource, string InitialCatalog, string UserId, string Password)
            {
    	        // Obtenemos el archivo de configuración de la aplicación.
    	        //
    	        Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
    
    	        // Obtenemos la sección connectionStrings.
    	        //
    	        ConnectionStringsSection section = config.ConnectionStrings;
    
    	        // Obtenemos el objeto ConnectionStringSettings
    	        // correspondiente al nombre de la cadena de
    	        // conexión especificada.
    
                ConnectionStringSettings settings = section.ConnectionStrings["default"];
    
                //if ((settings == null))
                //    return;
    
    
    	        // Creamos el objeto
    	        DbConnectionStringBuilder builder = new DbConnectionStringBuilder();
    
    	        // Le asignamos el valor de la cadena de conexión
                builder.ConnectionString = settings.ConnectionString;
    
    	        builder["Data Source"] = DataSource;
    	        builder["Initial Catalog"] = InitialCatalog;
    	        builder["User Id"] = UserId;
    	        builder["Password"] = Password;
    
    	        // Le asignamos la cadena de conexión existente  
    	        // en el objeto DbConnectionStringBuilder.  
    	        //
                settings.ConnectionString = builder.ConnectionString;
    
    	        // Modificamos la cadena de conexión en el archivo app.config.
    	        //
                AddAndSaveOneConnectionStringSettings(config, settings);
    
            }
    
            public static void AddAndSaveOneConnectionStringSettings(System.Configuration.Configuration configuration, System.Configuration.ConnectionStringSettings connectionStringSettings)
            {
                // You cannot add to ConfigurationManager.ConnectionStrings using
                // ConfigurationManager.ConnectionStrings.Add
                // (connectionStringSettings) -- This fails.
    
                // But you can add to the configuration section and refresh the ConfigurationManager.
    
                // Get the connection strings section; Even if it is in another file.
                ConnectionStringsSection connectionStringsSection = configuration.ConnectionStrings;
    
                // Add the new element to the section.
                connectionStringsSection.ConnectionStrings.Add(connectionStringSettings);
    
                // Save the configuration file.
                configuration.Save(ConfigurationSaveMode.Minimal);
    
                // This is this needed. Otherwise the connection string does not show up in
                // ConfigurationManager
                ConfigurationManager.RefreshSection("connectionStrings");
            }

    Revisa este link DbConnectionStringBuilder Class

    Crearías una interfaz algo como esta para enviarle los parámetros que necesitan los métodos mostrados.

    De esta manera te puedes conectar con facilidad a cualquier servidor de base de datos sea local, remotamente.

    Saludos

     


    Pedro Ávila
    "El hombre sabio querrá estar siempre con quien sea mejor que él."
    Lima - Perú



    • Editado Pedro Ávila jueves, 24 de agosto de 2017 16:10
    • Propuesto como respuesta Moderador M lunes, 28 de agosto de 2017 4:30
    • Marcado como respuesta Moderador M martes, 29 de agosto de 2017 17:19
    jueves, 24 de agosto de 2017 16:04

Todas las respuestas

  • Se me ocurre que podrías leer la IP local del equipo, y si resulta estar en la misma subred que el servidor (es decir, si se trata de 192.168.1.x) entonces usar la cadena que tiene la IP local del servidor, y en cambio su la IP del equipo cliente está en otra red, entonces usar la IP pública del servidor. Esto funcionará, claro está, a condición de que la red de tu casa no sea casualmente también una 192.168.1.x.
    jueves, 24 de agosto de 2017 6:42
  • Hola

    Te recomendaría poner la cadena de conexión en un archivo App.config puedes obtener la cadena de conexión por medio de una key para así poder modificarla.

    <connectionStrings>
      <add name="default" connectionString="Data Source=.;Initial Catalog=Prueba;Integrated Security=True"/>
    </connectionStrings>

    Revisa este articulo Archivos de Configuración - Una introducción (1/3)

    Puedes modificar la cadena de conexión de la siguiente manera

    public static void BuilConnectionString(string DataSource, string InitialCatalog, string UserId, string Password)
            {
    	        // Obtenemos el archivo de configuración de la aplicación.
    	        //
    	        Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
    
    	        // Obtenemos la sección connectionStrings.
    	        //
    	        ConnectionStringsSection section = config.ConnectionStrings;
    
    	        // Obtenemos el objeto ConnectionStringSettings
    	        // correspondiente al nombre de la cadena de
    	        // conexión especificada.
    
                ConnectionStringSettings settings = section.ConnectionStrings["default"];
    
                //if ((settings == null))
                //    return;
    
    
    	        // Creamos el objeto
    	        DbConnectionStringBuilder builder = new DbConnectionStringBuilder();
    
    	        // Le asignamos el valor de la cadena de conexión
                builder.ConnectionString = settings.ConnectionString;
    
    	        builder["Data Source"] = DataSource;
    	        builder["Initial Catalog"] = InitialCatalog;
    	        builder["User Id"] = UserId;
    	        builder["Password"] = Password;
    
    	        // Le asignamos la cadena de conexión existente  
    	        // en el objeto DbConnectionStringBuilder.  
    	        //
                settings.ConnectionString = builder.ConnectionString;
    
    	        // Modificamos la cadena de conexión en el archivo app.config.
    	        //
                AddAndSaveOneConnectionStringSettings(config, settings);
    
            }
    
            public static void AddAndSaveOneConnectionStringSettings(System.Configuration.Configuration configuration, System.Configuration.ConnectionStringSettings connectionStringSettings)
            {
                // You cannot add to ConfigurationManager.ConnectionStrings using
                // ConfigurationManager.ConnectionStrings.Add
                // (connectionStringSettings) -- This fails.
    
                // But you can add to the configuration section and refresh the ConfigurationManager.
    
                // Get the connection strings section; Even if it is in another file.
                ConnectionStringsSection connectionStringsSection = configuration.ConnectionStrings;
    
                // Add the new element to the section.
                connectionStringsSection.ConnectionStrings.Add(connectionStringSettings);
    
                // Save the configuration file.
                configuration.Save(ConfigurationSaveMode.Minimal);
    
                // This is this needed. Otherwise the connection string does not show up in
                // ConfigurationManager
                ConfigurationManager.RefreshSection("connectionStrings");
            }

    Revisa este link DbConnectionStringBuilder Class

    Crearías una interfaz algo como esta para enviarle los parámetros que necesitan los métodos mostrados.

    De esta manera te puedes conectar con facilidad a cualquier servidor de base de datos sea local, remotamente.

    Saludos

     


    Pedro Ávila
    "El hombre sabio querrá estar siempre con quien sea mejor que él."
    Lima - Perú



    • Editado Pedro Ávila jueves, 24 de agosto de 2017 16:10
    • Propuesto como respuesta Moderador M lunes, 28 de agosto de 2017 4:30
    • Marcado como respuesta Moderador M martes, 29 de agosto de 2017 17:19
    jueves, 24 de agosto de 2017 16:04