none
Conexion a base de datos desde un archivo .ini RRS feed

  • Pregunta

  • Estimados

          Junto con saludarlos y estar agradecidos con el foro, vengo a realizar una consulta sobre como puedo realizar una conexion a la base de datos desde un archivo .ini por ejemplo y este pueda modificarlo para crear una nueva conexion a la base de datos ingresando nuevos datos a los campos ya determinados. Encontre el siguiente link http://explicandocodigo.blogspot.cl/2016/03/leer-archivos-ini_23.html pero no pude entenderlo a cabalidad la explicacion, si es posible que alguien me de una mano.

    De esta manera modifico los datos de mi archivo .ini

    //Realizar una query para guardar los registros en una base de datos y esta a su vez consultar dicha base de datos para realizar la conexion
    
                if (MessageBox.Show("Esta seguro que desea guardar la configuración", "Guardar configuración", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == System.Windows.Forms.DialogResult.Yes)
                {
                    string cadConn = "datasource=" + txtServer.Text + "; database=" + txtdbMySql.Text + "; username=" + txtdbUser.Text + "; password=" + txtdbPassword.Text + "";
                    string path = @"D:\Users\Nicolas\Documents\ConnectionString.ini";
                    if (File.Exists(path))
                    {
                        File.WriteAllText(path, cadConn);
                    }
                    else
                    {
                        MessageBox.Show("La ruta del archivo no es valida o no existente");
                        this.Close();
                    }
                    this.Close();
                }

    Pero tengo problemas al realizar el login del usuario por ejemplo, el codigo es este

    string path = @"D:\Users\Nicolas\Documents\ConnectionString.ini";
                if (File.Exists(path))
                {
                    string myConnection = File.ReadAllText(path);
                    try
                    {
                        MySqlConnection myConn = new MySqlConnection(myConnection);
                        MySqlCommand SelectCommand = new MySqlCommand("select * from cdctecnicos where codTecnico='" + this.txtUser.Text + "' and Contraseña='" + this.txtPassword.Text + "' ;", myConn); //conexion local
                                                                                                                                                                                                                       //MySqlCommand SelectCommand = new MySqlCommand("select * from cdcontrolST.cdcTecnicos where codTecnico='" + this.txtUser.Text + "' and Contrasena='" + this.txtPassword.Text + "' ;", myConn);
                        MySqlDataReader myReader;
                        MySqlCommand insert = new MySqlCommand();
    
                        myConn.Open();
                        myReader = SelectCommand.ExecuteReader();
    
                        int count = 0;
                        while (myReader.Read())
                        {
                            count = count + 1;
                        }
                        if (count == 1)
                        {
                            //insertar datos a DB
                            //string InsertMySql = @"INSERT INTO cdcontrolst.cdchorarios (codEscaner, codTecnico, FechaEntrada, FechaSalida,Comentario) values (@cEscaner,@cTecnico,@fEntrada,@fSalida,@Comment)", MyConn;
                            //MySqlCommand mysqlcmd = new MySqlCommand(InsertMySql);
                            //mysqlcmd.Parameters.AddWithValue("@cEscaner", this.txtUser.Text);
                            //mysqlcmd.Parameters.AddWithValue("@cTecnico", this.txtUser.Text);
                            //mysqlcmd.Parameters.AddWithValue("@fEntrada", this.lblTime.Text);
                            //mysqlcmd.Parameters.AddWithValue("@fSalida", this.lblTime.Text);
                            //mysqlcmd.Parameters.AddWithValue("@Comment", this.txtUser.Text);
                            //mysqlcmd.ExecuteNonQuery();
                            //MessageBox.Show("El usuario y contraseña es correcta");
    
                            string user = txtUser.Text;
                            comL.Consulta(user);
                            ServiceTecn service = new ServiceTecn();
                            service.txtIDTecnico.Text = txtUser.Text;
    
                            //Operacion bienvenido
    
                            string cadSql = "Select * from cdcontrolST2.cdcTecnicos where codTecnico='" + user + "' ";
    
                            //Open connection
    
                            //create mysql command
                            MySqlCommand cmd = new MySqlCommand();
                            //Assign the query using CommandText
                            cmd.CommandText = cadSql;
                            //Assign the connection using Connection
                            string Nombre = myReader["Nombre"].ToString();
                            string Apellido = myReader["Apellido"].ToString();
                            string Welcome = "Bienvenido " + Nombre + " " + Apellido + ".";
                            //return Welcome;
                            //System.Windows.Forms.MessageBox.Show(Welcome);
                            service.lblWelcome.Text = Welcome;
    
    
                            //Execute query
                            //cmd.ExecuteNonQuery();
                            //System.Windows.Forms.MessageBox.Show("Se ha almacenado correctamente el comentario en la base de dato");
    
                            //close connection
                            //this.CloseConnection();
    
                            //Oculta el formulario y abrir otro
    
                            service.Show();
                            this.Hide();
                            myConn.Close();
    
                        }
                        else if (count > 1)
                        {
                            MessageBox.Show("Acceso denegado, el usuario y contraseña se encuentra duplicado", "Ingreso de usuario");
                            txtPassword.Text = "";
                            myConn.Close();
                        }
                        else
                        {
                            MessageBox.Show("El usuario y contraseña ingresado no corresponden, por favor intentelo nuevamente", "Ingreso de usuario");
                            myConn.Close();
                            txtUser.Text = "";
                            txtPassword.Text = "";
                        }
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message);
                    }
                }

    De esta manera me conecto pero no puedo obtener cada dato de forma solitaria de mi archivo .ini... se entiende como solitaria por ejemplo "database=cdcontrolst".

    lunes, 19 de junio de 2017 18:06

Respuestas

  • Hola @Nicolás Villablanca

    Puedes crear tu cadena de conexión en el archivo App.config en tiempo de ejecución desde un formulario y conectarte a cualquier base de datos que este alojada en el mismo servidor.

    Presentación

    private void btnGuardar_Click(object sender, EventArgs e)
            {
                Utilidades.NServidor = txtNombreServidor.Text;
                Utilidades.NDatabase = txtNombreDB.Text;
                Utilidades.NUsuario = txtUsuario.Text;
                Utilidades.NPass = txtPassword.Text;
    
                ConexionConfiguracion.BuilConnectionString(Utilidades.NServidor, Utilidades.NDatabase, Utilidades.NUsuario, Utilidades.NPass);
            }


    Lógica

    public static void BuilConnectionString(string DataSource, string InitialCatalog, string UserId, string Password)
            {
                Conexion.BuilConnectionString(DataSource, InitialCatalog, UserId, Password);
            }


    Acceso Datos: Adaptalo a tus necesidades 

    public class Conexion
        {
    
            private static string nCon;
            internal static string providerName;
    
            public static string GetConexion()
            {
                try
                {
                    Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
                    ConnectionStringSettings cs = config.ConnectionStrings.ConnectionStrings["default"];
    
                    if (cs == null)
                        throw new ArgumentNullException("nameConnectionString", "El nombre de la cadena de conexión no existe" + " en el archivo de configuración de la aplicación.");
    
                    nCon = cs.ConnectionString;
                    if ((nCon == string.Empty))
                        throw new ArgumentNullException("nameConnectionString", "No existe la cadena de conexion en el valor" + " con nombre especificado.");
                    //nCon = String.Empty
    
                    providerName = cs.ProviderName;
                    if (providerName == string.Empty)
                        throw new ArgumentNullException("nameConnectionString", "El proveedor .net especificado" + " actualmente no se encuentra soportado.");
                    return string.Empty;
    
                }
                catch (ArgumentException ex)
                {
                    MessageBox.Show(ex.ToString());
                    return ex.Message;
                    //Throw ex
                    nCon = "";
                }
            }
    
            public static SqlConnection Conectar()
            {
    
                SqlConnection cnMDB = new SqlConnection();
                if (string.IsNullOrEmpty(nCon))
                    GetConexion();
                if (nCon != null)
                {
                    try
                    {
                        cnMDB.ConnectionString = nCon;
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.ToString());
                    }
                }
                return cnMDB;
    
            }
    
            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");
            }
        }

    Formulario

    Cuando ejecutes tu app presiona las teclas Ctrl + F5

    Espero la información brindada sea de utilidad.

    NOTA: Algún moderador que mueva este hilo al foro de C#

    Saludos.


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



    martes, 20 de junio de 2017 3:53

Todas las respuestas

  • ¿Tienes algún requerimiento especial por el que ocupas un archivo con extensión 'ini' para contener una cadena de conexión?. Lo habitual es que la cadena de conexión se escriba sobre un archivo de configuración, podría ser el propio archivo 'App.config'

    How to get Connection String from App.Config in C#

    ConfigurationManager.ConnectionStrings Property


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    lunes, 19 de junio de 2017 18:38
  • Si es un requerimiento especial ya que present la propuesta de usar App.config en vez de un archivo .ini pero lo quieren a base ese tipo de archivo ya que lo conocen mas.
    lunes, 19 de junio de 2017 18:48
  • Sobre utilizar el App.config en el proyecto como se debe agregar cada informacion de la cadena de la base de datos, ya que los link que me enviaste utilizan una cadena completa... como se deberia usar
    lunes, 19 de junio de 2017 18:55
  • Si es un requerimiento especial ya que present la propuesta de usar App.config en vez de un archivo .ini pero lo quieren a base ese tipo de archivo ya que lo conocen mas.

    Los archivos de configuración son el estándar en .NET para almacenar información del usuario y de la aplicación, de hecho, la biblioteca de clases del marco de trabajo de .NET implementa las clases y miembros de clase necesarios para trabajar con estos archivos de manera simple. En lo personal yo evitaría trabajar con archivos INI, entiendo que hace años se utilizaba, hoy en día quizá no sea lo adecuado.

    Respecto a como agregar/editar la sección, atributos o valores de la cadena de conexión: App.config es un archivo con formato XML que puedes editar y escribir los valores que consideres necesario, sin embargo, también es posible editar o agregar atributos a la cadena de conexión desde la aplicación: SqlConnectionStringBuilder Class


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    lunes, 19 de junio de 2017 20:03
  • Estimado Williams

          Segui tu consejo sobre la app.conf bueno ya tengo mi conexion a la base de datos de esta manera

    string server = ConfigurationManager.AppSettings["Server"].ToString();
            string database = ConfigurationManager.AppSettings["Database"].ToString();
            string username = ConfigurationManager.AppSettings["Username"].ToString();
            string pass = ConfigurationManager.AppSettings["Password"].ToString();
    
    private void btnEnter_Click(object sender, EventArgs e)
            {
                //string path = @"D:\Users\Nicolas\Documents\ConnectionString.ini";
                string path = @"D:\Users\Nicolas\Documents\Visual Studio\Visual Studio 2017\Projects\cdControlSTv1.3\CapaPresentacion\App.config";
                if (File.Exists(path))
                {
                    string myConnection = "datasource="+server+";database="+database+";username="+username+";password="+pass;
                    try
                    {
                        MySqlConnection myConn = new MySqlConnection(myConnection);
                        MySqlCommand SelectCommand = new MySqlCommand("select * from cdctecnicos where codTecnico='" + this.txtUser.Text + "' and Contraseña='" + this.txtPassword.Text + "' ;", myConn); //conexion local
                                                                                                                                                                                                                       //MySqlCommand SelectCommand = new MySqlCommand("select * from cdcontrolST.cdcTecnicos where codTecnico='" + this.txtUser.Text + "' and Contrasena='" + this.txtPassword.Text + "' ;", myConn);
                        MySqlDataReader myReader;
                        MySqlCommand insert = new MySqlCommand();
    
                        myConn.Open();
                        myReader = SelectCommand.ExecuteReader();
    
                        int count = 0;
                        while (myReader.Read())
                        {
                            count = count + 1;
                        }
                        if (count == 1)
                        {
                            //insertar datos a DB
                            //string InsertMySql = @"INSERT INTO cdcontrolst.cdchorarios (codEscaner, codTecnico, FechaEntrada, FechaSalida,Comentario) values (@cEscaner,@cTecnico,@fEntrada,@fSalida,@Comment)", MyConn;
                            //MySqlCommand mysqlcmd = new MySqlCommand(InsertMySql);
                            //mysqlcmd.Parameters.AddWithValue("@cEscaner", this.txtUser.Text);
                            //mysqlcmd.Parameters.AddWithValue("@cTecnico", this.txtUser.Text);
                            //mysqlcmd.Parameters.AddWithValue("@fEntrada", this.lblTime.Text);
                            //mysqlcmd.Parameters.AddWithValue("@fSalida", this.lblTime.Text);
                            //mysqlcmd.Parameters.AddWithValue("@Comment", this.txtUser.Text);
                            //mysqlcmd.ExecuteNonQuery();
                            //MessageBox.Show("El usuario y contraseña es correcta");
    
                            string user = txtUser.Text;
                            comL.Consulta(user);
                            ServiceTecn service = new ServiceTecn();
                            service.txtIDTecnico.Text = txtUser.Text;
    
                            //Operacion bienvenido
    
                            string cadSql = "Select * from "+database+".cdcTecnicos where codTecnico='" + user + "' ";
    
                            //Open connection
    
                            //create mysql command
                            MySqlCommand cmd = new MySqlCommand();
                            //Assign the query using CommandText
                            cmd.CommandText = cadSql;
                            //Assign the connection using Connection
                            string Nombre = myReader["Nombre"].ToString();
                            string Apellido = myReader["Apellido"].ToString();
                            string Welcome = "Bienvenido " + Nombre + " " + Apellido + ".";
                            //return Welcome;
                            //System.Windows.Forms.MessageBox.Show(Welcome);
                            service.lblWelcome.Text = Welcome;
    
    
                            //Execute query
                            //cmd.ExecuteNonQuery();
                            //System.Windows.Forms.MessageBox.Show("Se ha almacenado correctamente el comentario en la base de dato");
    
                            //close connection
                            //this.CloseConnection();
    
                            //Oculta el formulario y abrir otro
    
                            service.Show();
                            this.Hide();
                            myConn.Close();
    
                        }
                        else if (count > 1)
                        {
                            MessageBox.Show("Acceso denegado, el usuario y contraseña se encuentra duplicado", "Ingreso de usuario");
                            txtPassword.Text = "";
                            myConn.Close();
                        }
                        else
                        {
                            MessageBox.Show("El usuario y contraseña ingresado no corresponden, por favor intentelo nuevamente", "Ingreso de usuario");
                            myConn.Close();
                            txtUser.Text = "";
                            txtPassword.Text = "";
                        }
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message);
                    }
                }
            }

    Lo hice de esta manera para modificar desde otro formulario cada uno de los campos, pero ahi estoy en dilema ya que no se como se modifican los valores de los tags en la app.config

    lunes, 19 de junio de 2017 21:24
  • Mi pregunta va dirigida a este tema puntual como logro modificar y persistir un parámetro de configuración de mi App.config
    lunes, 19 de junio de 2017 21:36
  • Esta es mi App.config de mi aplicacion:

    <?xml version="1.0" encoding="utf-8" ?> <configuration> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" /> </startup> <appSettings> <clear /> <add key="Server" value="localhost"/> <add key="Database" value="cdcontrolst"/> <add key="Username" value="root"/> <add key="Password" value="Maddy173005482"/> </appSettings> </configuration

    Intento realizarla modificacion y la persistencia de los parametros de la siguiente manera:

    private void btnSave_Click(object sender, EventArgs e)
            {
                Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
                config.AppSettings.Settings["Server"].Value = txtServer.Text;
                config.Save(ConfigurationSaveMode.Full);
            }
    Pero no logro que de resultado como en este link https://johnbarquin.wordpress.com/2009/04/10/%C2%BFcomo-leer-y-escribir-parametros-de-configuracion-en-c/ y no se como guiarme para realizar las modificaciones y estas queden almacenadas en mi App.config

    lunes, 19 de junio de 2017 21:42
  • Hola @Nicolás Villablanca

    Puedes crear tu cadena de conexión en el archivo App.config en tiempo de ejecución desde un formulario y conectarte a cualquier base de datos que este alojada en el mismo servidor.

    Presentación

    private void btnGuardar_Click(object sender, EventArgs e)
            {
                Utilidades.NServidor = txtNombreServidor.Text;
                Utilidades.NDatabase = txtNombreDB.Text;
                Utilidades.NUsuario = txtUsuario.Text;
                Utilidades.NPass = txtPassword.Text;
    
                ConexionConfiguracion.BuilConnectionString(Utilidades.NServidor, Utilidades.NDatabase, Utilidades.NUsuario, Utilidades.NPass);
            }


    Lógica

    public static void BuilConnectionString(string DataSource, string InitialCatalog, string UserId, string Password)
            {
                Conexion.BuilConnectionString(DataSource, InitialCatalog, UserId, Password);
            }


    Acceso Datos: Adaptalo a tus necesidades 

    public class Conexion
        {
    
            private static string nCon;
            internal static string providerName;
    
            public static string GetConexion()
            {
                try
                {
                    Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
                    ConnectionStringSettings cs = config.ConnectionStrings.ConnectionStrings["default"];
    
                    if (cs == null)
                        throw new ArgumentNullException("nameConnectionString", "El nombre de la cadena de conexión no existe" + " en el archivo de configuración de la aplicación.");
    
                    nCon = cs.ConnectionString;
                    if ((nCon == string.Empty))
                        throw new ArgumentNullException("nameConnectionString", "No existe la cadena de conexion en el valor" + " con nombre especificado.");
                    //nCon = String.Empty
    
                    providerName = cs.ProviderName;
                    if (providerName == string.Empty)
                        throw new ArgumentNullException("nameConnectionString", "El proveedor .net especificado" + " actualmente no se encuentra soportado.");
                    return string.Empty;
    
                }
                catch (ArgumentException ex)
                {
                    MessageBox.Show(ex.ToString());
                    return ex.Message;
                    //Throw ex
                    nCon = "";
                }
            }
    
            public static SqlConnection Conectar()
            {
    
                SqlConnection cnMDB = new SqlConnection();
                if (string.IsNullOrEmpty(nCon))
                    GetConexion();
                if (nCon != null)
                {
                    try
                    {
                        cnMDB.ConnectionString = nCon;
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.ToString());
                    }
                }
                return cnMDB;
    
            }
    
            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");
            }
        }

    Formulario

    Cuando ejecutes tu app presiona las teclas Ctrl + F5

    Espero la información brindada sea de utilidad.

    NOTA: Algún moderador que mueva este hilo al foro de C#

    Saludos.


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



    martes, 20 de junio de 2017 3:53
  • Estimado Pedro

            Gracias por tu respuesta, pero se me genera la siguiente duda: El usuario siempre debera ingresar los datos para realizar la conexion a la base de datos o esta queda ya almacenada en el App.config. Ya que la idea es que dicha aplicacion este en mas de un computador y si la cadena de conexion se desea cambiar permita este cambio y no genere perdida de tiempo al usuario.

    martes, 20 de junio de 2017 13:23
  • Hola @Nicolás Villablanca

    El usuario siempre debera ingresar los datos para realizar la conexion a la base de datos o esta queda ya almacenada en el App.config.

    En el momento que instalan la aplicación por primera vez se configura la conexión y si queda grabada en el archivo App.config

    Ya que la idea es que dicha aplicacion este en mas de un computador y si la cadena de conexion se desea cambiar permita este cambio y no genere perdida de tiempo al usuario.

    El resto ya depende de lo que necesites si deseas conectarte a otra base de datos vuelve a llamar al formulario de configuración para conectarte a otra base de datos y vuelve a escribir en el archivo App.confg

    Espero la información proporcionada sea de utilidad.

    Saludos.


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

    martes, 20 de junio de 2017 13:54
  • Estimado Pedro

          Dentro de tu codigo no mencionaste sobre el App.config me gustaria saber si mi App.config debo modificarlo o dejarlo tal como esta... y la otra duda que me aqueja es la siguiente ya que en tu codigo no mencionas sobre Utilidades

    Utilidades.NServidor = txtNombreServidor.Text;
                Utilidades.NDatabase = txtNombreDB.Text;
                Utilidades.NUsuario = txtUsuario.Text;
                Utilidades.NPass = txtPassword.Text;

    Podrias explicarme para saber si debo adaptar mi codigo

    martes, 20 de junio de 2017 15:37
  • Hola

    Así queda tu App.config

    <?xml version="1.0"?>
    <configuration>
      <connectionStrings>
        <add name="default" providerName="System.Data.SqlClient" connectionString=""/>
    
      </connectionStrings>
    
      <startup useLegacyV2RuntimeActivationPolicy="true">
        <supportedRuntime version="v4.0"/>
      </startup>
    </configuration>

    NServidor, NDataBase, etc son variables de tipo string declaralas a nivel de formulario o donde mas te convenga.

    Para comprobar lo mencionado vas al explorador de soluciones y le das click a "Mostrar todos los archivo", carpeta bin/Debug/WindowsUI.Controles.vshost.exe.config 

    Saludos.


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


    miércoles, 21 de junio de 2017 4:08