none
FALLA BOTÓN DE ACTUALIZAR DATOS RRS feed

  • Pregunta

  • public partial class CONTROL_CLIENTES : Form
        {
             
            public CONTROL_CLIENTES()
            {
                
                InitializeComponent();
                
            }
            
            //REALIZA LA CONEXIÓN A LA BASE DE DATOS
            string connectionString = "datasource=127.0.0.1;port=3306;username=Experienciasistemas;password=experienciasistemas;database=experienciasistemas;";
            MySqlConnection conexion = new MySqlConnection("Server=127.0.0.1; Database=experienciasistemas; Uid=Experienciasistemas; pwd=experienciasistemas;");
    
    
            private void button1_Click(object sender, EventArgs e)
                {
    
                //GUARDA LOS TEXTBOX EN LA BASE DE DATOS
                string query = "INSERT INTO experienciasistemas(`ID`,`NO_FOLIO`,`CLAVE`, `EQUIPO`, `FECHA_RECIBO`, `QUIEN_RECIBE`, `FECHA_COMPROMISO`, `AREA_SERVICIO`, `TECNICO`, `FECHA_ENTREGA`, `REMISION`, `QUIEN_MOSTRO`) VALUES (NULL, '" + NO_FOLIO.Text + "','" + CLAVE.Text + "', '" + EQUIPO.Text + "', '" + FECHA_RECIBO.Text + "', '" + QUIEN_RECIBE.Text + "', '" + FECHA_COMPROMISO.Text + "', '" + AREA_SERVICIO.Text + "', '" + TECNICO.Text + "', '" + FECHA_ENTREGA.Text + "', '" + REMISION.Text + "', '" + QUIEN_MOSTRO.Text + "')";
                MySqlConnection databaseConnection = new MySqlConnection(connectionString);
                MySqlCommand commandDatabase = new MySqlCommand(query, databaseConnection);
                commandDatabase.CommandTimeout = 60;
                databaseConnection.Open();
                MySqlDataReader myReader = commandDatabase.ExecuteReader();
                databaseConnection.Close();
    
                           //MOSTRAR TEXTO CUANDO SE GUARDA
                           Registro_vacio.ForeColor = Color.Green;
                           Registro_vacio.Text = "Agregado exitosamente";
                           Registro_vacio.Visible = false;
                           Registro_vacio.Visible = true;
                      
                           //ACTUALIZA EL DATAGRID EN TIEMPO REAL 
                           using (MySqlConnection cn = new MySqlConnection(connectionString))
                           {
                           MySqlDataAdapter da = new MySqlDataAdapter("Select * from experienciasistemas", cn);
                           DataTable dt = new DataTable();
                           da.Fill(dt);
                           dataGridView1.DataSource = dt;
                           }
    
                           //CAMPOS EN BLANCO DESPUES DE GUARDAR
                            this.NO_FOLIO.Text = "";
                            this.CLAVE.Text = "";
                            this.EQUIPO.Text = "";
                            this.FECHA_RECIBO.Text = "";
                            this.QUIEN_RECIBE.Text = "";
                            this.FECHA_COMPROMISO.Text = "";
                            this.AREA_SERVICIO.Text = "";
                            this.TECNICO.Text = "";
                            this.FECHA_ENTREGA.Text = "";
                            this.REMISION.Text = "";
                            this.QUIEN_MOSTRO.Text = "";
                }
            
            private void dataGridView1_VisibleChanged(object sender, EventArgs e)
            {
                //MUESTRA LOS DATOS DE LA BASE DE DATOS EN EL DATAGRID
                using (MySqlConnection cn = new MySqlConnection(connectionString))
                {
                    MySqlDataAdapter da = new MySqlDataAdapter("Select * from experienciasistemas", cn);
                    DataTable dt = new DataTable();
                    da.Fill(dt);
                    dataGridView1.DataSource = dt;
                }
    
            }
    
            private void button2_Click(object sender, EventArgs e)
            {
    
                //LINEA DEL DATAGRID QUE PUEDE SER SELECCIONADA PARA DESPUES PINTARLA
                var row = dataGridView1.SelectedRows[0]; 
    
                for (int i = 0; i <= 7; i++)
                {
    
                    row.Cells[i].Style.BackColor = Color.Yellow;
    
                }
    
                for (int i = 8; i <= 11; i++)
                {
    
                    row.Cells[i].Style.BackColor = Color.White;
    
                }
    
            }
    
            private void button3_Click(object sender, EventArgs e)
            {
                //LINEA DEL DATAGRID QUE PUEDE SER SELECCIONADA PARA DESPUES PINTARLA
                var row = dataGridView1.SelectedRows[0]; 
    
                for (int i = 0; i <= 7; i++)
                {
    
                    row.Cells[i].Style.BackColor = Color.Yellow;
    
                }
    
                for (int i = 8; i <= 11; i++)
                {
    
                    row.Cells[i].Style.BackColor = Color.Green;
    
                }
    
            }
    
            private void button4_Click(object sender, EventArgs e)
            {
    
                //PERMITE SELECCIONAR UNA LINEA Y MOSTRARLA EN LOS TEXTBOX
                try
                {
                    NO_FOLIO.Text = dataGridView1.CurrentRow.Cells[1].Value.ToString();
                    CLAVE.Text = dataGridView1.CurrentRow.Cells[2].Value.ToString();
                    EQUIPO.Text = dataGridView1.CurrentRow.Cells[3].Value.ToString();
                    FECHA_RECIBO.Text = dataGridView1.CurrentRow.Cells[4].Value.ToString();
                    QUIEN_RECIBE.Text = dataGridView1.CurrentRow.Cells[5].Value.ToString();
                    FECHA_COMPROMISO.Text = dataGridView1.CurrentRow.Cells[6].Value.ToString();
                    AREA_SERVICIO.Text = dataGridView1.CurrentRow.Cells[7].Value.ToString();
                    TECNICO.Text = dataGridView1.CurrentRow.Cells[8].Value.ToString();
                    FECHA_ENTREGA.Text = dataGridView1.CurrentRow.Cells[9].Value.ToString();
                    REMISION.Text = dataGridView1.CurrentRow.Cells[10].Value.ToString();
                    QUIEN_MOSTRO.Text = dataGridView1.CurrentRow.Cells[11].Value.ToString();
                }
                catch
                {
                }
            }
    
            private void button5_Click(object sender, EventArgs e)
            {
    
    
                conexion.Open();
    
                String Query = "UPDATE experienciasistemas SET ID '" +
    
                    "',NO_FOLIO='" + NO_FOLIO.Text +
                    "',CLAVE='" + CLAVE.Text +
                    "',EQUIPO='" + EQUIPO.Text +
                    "',FECHA_RECIBO='" + FECHA_RECIBO.Text +
                    "',QUIEN_RECIBE='" + QUIEN_RECIBE.Text +
                    "',FECHA_COMPROMISO='" + FECHA_COMPROMISO.Text +
                    "',AREA_SERVICIO='" + AREA_SERVICIO.Text +
                    "',TECNICO='" + TECNICO.Text +
                    "',FECHA_ENTREGA='" + FECHA_ENTREGA.Text +
                    "',REMISION='" + REMISION.Text +
                    "',QUIEN_MOSTRO='" + QUIEN_MOSTRO.Text +
                     "';";
    
                MySqlCommand comando = new MySqlCommand(Query, conexion);
                comando.ExecuteNonQuery();
    
    
                
                }
    
            }
    }
    Tengo el siguiente código, y tengo un botón (button5) para actualizar los registros de mi base de datos, pero falla, eh buscado, pero no encuentro por eso hice 2 conexiones, alguien puede ayudarme, en verdad se los agradecería! 
    viernes, 3 de enero de 2020 8:15

Respuestas

  • Una disculpa, pero sigo batallando ahora me dio este error:

    MySql.Data.MySqlClient.MySqlException: 'You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'WHERE ...' at line 3'

     private void button5_Click(object sender, EventArgs e)
            {
                conexion.Open();
    
                String Query = @"UPDATE experienciasistemas SET 
    						ID= @ID, NO_FOLIO= @NO_FOLIO, CLAVE=@CLAVE, EQUIPO= @EQUIPO, FECHA_RECIBO= @FECHA_RECIBO, QUIEN_RECIBE= @QUIEN_RECIBE, FECHA_COMPROMISO= @FECHA_COMPROMISO, AREA_SERVICIO= @AREA_SERVICIO, TECNICO= @TECNICO, FECHA_ENTREGA= @FECHA_ENTREGA, REMISION= @REMISION, QUIEN_MOSTRO= @QUIEN_MOSTRO,
    					WHERE ...";
    
                MySqlCommand comando = new MySqlCommand(Query, conexion);
                comando.Parameters.AddWithValue("@ID", ID.Text);
                comando.Parameters.AddWithValue("@NO_FOLIO", NO_FOLIO.Text);
                comando.Parameters.AddWithValue("@CLAVE", CLAVE.Text);
                comando.Parameters.AddWithValue("@EQUIPO", EQUIPO.Text);
                comando.Parameters.AddWithValue("@FECHA_RECIBO", EQUIPO.Text);
                comando.Parameters.AddWithValue("@QUIEN_RECIBE", EQUIPO.Text);
                comando.Parameters.AddWithValue("@FECHA_COMPROMISO", EQUIPO.Text);
                comando.Parameters.AddWithValue("@AREA_SERVICIO", EQUIPO.Text);
                comando.Parameters.AddWithValue("@TECNICO", EQUIPO.Text);
                comando.Parameters.AddWithValue("@FECHA_ENTREGA", EQUIPO.Text);
                comando.Parameters.AddWithValue("@REMISION", EQUIPO.Text);
                comando.Parameters.AddWithValue("@QUIEN_MOSTRO", EQUIPO.Text);
    
                
    
                comando.ExecuteNonQuery();
    
    
            }

    Puse todos los campos, una pregunta en el Where como necesito declarar? me podrías dar un ejemplo? te lo agradecería mucho

    viernes, 3 de enero de 2020 19:58

Todas las respuestas

  • hola

    >>pero falla, eh buscado, pero no encuentro por eso hice 2 conexiones

    cuando falla que mensaje de error visualizas ?

    Ademas tienes que usar parametros

    private void button5_Click(object sender, EventArgs e)
    {
    
    	conexion.Open();
    	
    	String Query = @"UPDATE experienciasistemas SET 
    						NO_FOLIO= ?NoFolio, CLAVE=?clave, EQUIPO= ?equipo, ... 
    					WHERE ...";
    
    	MySqlCommand comando = new MySqlCommand(Query, conexion);
    	comando.Parameters.AddWithValue("?NoFolio", NO_FOLIO.Text);
    	comando.Parameters.AddWithValue("?clave", CLAVE.Text);
    	comando.Parameters.AddWithValue("?equipo", EQUIPO.Text);
    	
    	//resto parametros
    	
    	comando.ExecuteNonQuery();
    
    }

    te habia comentado que concatenar los valores en un string es una pesima practica

    Ademas donde defines el WHERE ? revisa ejemplo porque estas construyendo mal el UPDATE

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina


    viernes, 3 de enero de 2020 12:08
  • Lo hice tal y como me dices pero me aparece el siguiente mensaje:

    MySql.Data.MySqlClient.MySqlException: 'You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '... 
    WHERE ...' at line 2'
     public partial class CONTROL_CLIENTES : Form
        {
             
            public CONTROL_CLIENTES()
            {
                
                InitializeComponent();
                
            }
            
            //REALIZA LA CONEXIÓN A LA BASE DE DATOS
            string connectionString = "datasource=127.0.0.1;port=3306;username=Experienciasistemas;password=experienciasistemas;database=experienciasistemas;";
            MySqlConnection conexion = new MySqlConnection("Server=127.0.0.1; Database=experienciasistemas; Uid=Experienciasistemas; pwd=experienciasistemas;");
    
    
            private void button1_Click(object sender, EventArgs e)
                {
    
                //GUARDA LOS TEXTBOX EN LA BASE DE DATOS
                string query = "INSERT INTO experienciasistemas(`ID`,`NO_FOLIO`,`CLAVE`, `EQUIPO`, `FECHA_RECIBO`, `QUIEN_RECIBE`, `FECHA_COMPROMISO`, `AREA_SERVICIO`, `TECNICO`, `FECHA_ENTREGA`, `REMISION`, `QUIEN_MOSTRO`) VALUES (NULL, '" + NO_FOLIO.Text + "','" + CLAVE.Text + "', '" + EQUIPO.Text + "', '" + FECHA_RECIBO.Text + "', '" + QUIEN_RECIBE.Text + "', '" + FECHA_COMPROMISO.Text + "', '" + AREA_SERVICIO.Text + "', '" + TECNICO.Text + "', '" + FECHA_ENTREGA.Text + "', '" + REMISION.Text + "', '" + QUIEN_MOSTRO.Text + "')";
                MySqlConnection databaseConnection = new MySqlConnection(connectionString);
                MySqlCommand commandDatabase = new MySqlCommand(query, databaseConnection);
                commandDatabase.CommandTimeout = 60;
                databaseConnection.Open();
                MySqlDataReader myReader = commandDatabase.ExecuteReader();
                databaseConnection.Close();
    
                           //MOSTRAR TEXTO CUANDO SE GUARDA
                           Registro_vacio.ForeColor = Color.Green;
                           Registro_vacio.Text = "Agregado exitosamente";
                           Registro_vacio.Visible = false;
                           Registro_vacio.Visible = true;
                      
                           //ACTUALIZA EL DATAGRID EN TIEMPO REAL 
                           using (MySqlConnection cn = new MySqlConnection(connectionString))
                           {
                           MySqlDataAdapter da = new MySqlDataAdapter("Select * from experienciasistemas", cn);
                           DataTable dt = new DataTable();
                           da.Fill(dt);
                           dataGridView1.DataSource = dt;
                           }
    
                           //CAMPOS EN BLANCO DESPUES DE GUARDAR
                            this.NO_FOLIO.Text = "";
                            this.CLAVE.Text = "";
                            this.EQUIPO.Text = "";
                            this.FECHA_RECIBO.Text = "";
                            this.QUIEN_RECIBE.Text = "";
                            this.FECHA_COMPROMISO.Text = "";
                            this.AREA_SERVICIO.Text = "";
                            this.TECNICO.Text = "";
                            this.FECHA_ENTREGA.Text = "";
                            this.REMISION.Text = "";
                            this.QUIEN_MOSTRO.Text = "";
                }
            
            private void dataGridView1_VisibleChanged(object sender, EventArgs e)
            {
                //MUESTRA LOS DATOS DE LA BASE DE DATOS EN EL DATAGRID
                using (MySqlConnection cn = new MySqlConnection(connectionString))
                {
                    MySqlDataAdapter da = new MySqlDataAdapter("Select * from experienciasistemas", cn);
                    DataTable dt = new DataTable();
                    da.Fill(dt);
                    dataGridView1.DataSource = dt;
                }
    
            }
    
            private void button2_Click(object sender, EventArgs e)
            {
    
                //LINEA DEL DATAGRID QUE PUEDE SER SELECCIONADA PARA DESPUES PINTARLA
                var row = dataGridView1.SelectedRows[0]; 
    
                for (int i = 0; i <= 7; i++)
                {
    
                    row.Cells[i].Style.BackColor = Color.Yellow;
    
                }
    
                for (int i = 8; i <= 11; i++)
                {
    
                    row.Cells[i].Style.BackColor = Color.White;
    
                }
    
            }
    
            private void button3_Click(object sender, EventArgs e)
            {
                //LINEA DEL DATAGRID QUE PUEDE SER SELECCIONADA PARA DESPUES PINTARLA
                var row = dataGridView1.SelectedRows[0]; 
    
                for (int i = 0; i <= 7; i++)
                {
    
                    row.Cells[i].Style.BackColor = Color.Yellow;
    
                }
    
                for (int i = 8; i <= 11; i++)
                {
    
                    row.Cells[i].Style.BackColor = Color.Green;
    
                }
    
            }
    
            private void button4_Click(object sender, EventArgs e)
            {
    
                //PERMITE SELECCIONAR UNA LINEA Y MOSTRARLA EN LOS TEXTBOX
                try
                {
                    ID.Text = dataGridView1.CurrentRow.Cells[0].Value.ToString();
                    NO_FOLIO.Text = dataGridView1.CurrentRow.Cells[1].Value.ToString();
                    CLAVE.Text = dataGridView1.CurrentRow.Cells[2].Value.ToString();
                    EQUIPO.Text = dataGridView1.CurrentRow.Cells[3].Value.ToString();
                    FECHA_RECIBO.Text = dataGridView1.CurrentRow.Cells[4].Value.ToString();
                    QUIEN_RECIBE.Text = dataGridView1.CurrentRow.Cells[5].Value.ToString();
                    FECHA_COMPROMISO.Text = dataGridView1.CurrentRow.Cells[6].Value.ToString();
                    AREA_SERVICIO.Text = dataGridView1.CurrentRow.Cells[7].Value.ToString();
                    TECNICO.Text = dataGridView1.CurrentRow.Cells[8].Value.ToString();
                    FECHA_ENTREGA.Text = dataGridView1.CurrentRow.Cells[9].Value.ToString();
                    REMISION.Text = dataGridView1.CurrentRow.Cells[10].Value.ToString();
                    QUIEN_MOSTRO.Text = dataGridView1.CurrentRow.Cells[11].Value.ToString();
                }
                catch
                {
                }
            }
    
            private void button5_Click(object sender, EventArgs e)
            {
                conexion.Open();
    
                String Query = @"UPDATE experienciasistemas SET 
    						NO_FOLIO= @NoFolio, CLAVE=@clave, EQUIPO= @equipo, ... 
    					WHERE ...";
    
                MySqlCommand comando = new MySqlCommand(Query, conexion);
                comando.Parameters.AddWithValue("@NoFolio", NO_FOLIO.Text);
                comando.Parameters.AddWithValue("@clave", CLAVE.Text);
                comando.Parameters.AddWithValue("@equipo", EQUIPO.Text);
    
                //resto parametros
    
                comando.ExecuteNonQuery();
    
    
            }

    viernes, 3 de enero de 2020 18:31
  • hola

    >>Lo hice tal y como me dices pero me aparece el siguiente mensaje:

    Pero la idea no era que copies y pegues

    cuando puse los "...." era para que completes el resto de los campos

    y al poner "//resto parametros" debias alli tambine definir los AddWithValue() que agregues

    Asi como lo puse era solo una muestra de la estructura que debias utilizar

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    viernes, 3 de enero de 2020 19:02
  • Una disculpa, pero sigo batallando ahora me dio este error:

    MySql.Data.MySqlClient.MySqlException: 'You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'WHERE ...' at line 3'

     private void button5_Click(object sender, EventArgs e)
            {
                conexion.Open();
    
                String Query = @"UPDATE experienciasistemas SET 
    						ID= @ID, NO_FOLIO= @NO_FOLIO, CLAVE=@CLAVE, EQUIPO= @EQUIPO, FECHA_RECIBO= @FECHA_RECIBO, QUIEN_RECIBE= @QUIEN_RECIBE, FECHA_COMPROMISO= @FECHA_COMPROMISO, AREA_SERVICIO= @AREA_SERVICIO, TECNICO= @TECNICO, FECHA_ENTREGA= @FECHA_ENTREGA, REMISION= @REMISION, QUIEN_MOSTRO= @QUIEN_MOSTRO,
    					WHERE ...";
    
                MySqlCommand comando = new MySqlCommand(Query, conexion);
                comando.Parameters.AddWithValue("@ID", ID.Text);
                comando.Parameters.AddWithValue("@NO_FOLIO", NO_FOLIO.Text);
                comando.Parameters.AddWithValue("@CLAVE", CLAVE.Text);
                comando.Parameters.AddWithValue("@EQUIPO", EQUIPO.Text);
                comando.Parameters.AddWithValue("@FECHA_RECIBO", EQUIPO.Text);
                comando.Parameters.AddWithValue("@QUIEN_RECIBE", EQUIPO.Text);
                comando.Parameters.AddWithValue("@FECHA_COMPROMISO", EQUIPO.Text);
                comando.Parameters.AddWithValue("@AREA_SERVICIO", EQUIPO.Text);
                comando.Parameters.AddWithValue("@TECNICO", EQUIPO.Text);
                comando.Parameters.AddWithValue("@FECHA_ENTREGA", EQUIPO.Text);
                comando.Parameters.AddWithValue("@REMISION", EQUIPO.Text);
                comando.Parameters.AddWithValue("@QUIEN_MOSTRO", EQUIPO.Text);
    
                
    
                comando.ExecuteNonQuery();
    
    
            }

    Puse todos los campos, una pregunta en el Where como necesito declarar? me podrías dar un ejemplo? te lo agradecería mucho

    viernes, 3 de enero de 2020 19:58