none
Capturar un dato y almacenarlo en un string mediante consulta RRS feed

  • Pregunta

  • Tengo un form en el que cargo datos de la base de datos de access en un combobox --> Nombre (maquina) y mediante una consulta obtengo todos datos del campo maquina.
    Lo que necesito es obtener tres valores del campo maquina que se ha seleccionado como ser (utilidad, precio, costo), estos necesito almacenarlos cada uno en una variable ya que los necesito para otro evento en los cuales es necesario
    usarlos.

    En este evento necesito declarar las variables y poder llamarlas desde otro evento.

     private void comboBox2_SelectedIndexChanged(object sender, EventArgs e)
            {
                OleDbCommand cmd = connection.CreateCommand();
                cmd.CommandType = CommandType.Text;
                cmd.CommandText = "select * from Costos where maquina='" + comboBox2.SelectedItem.ToString() + "'";
                cmd.ExecuteNonQuery();
                DataTable dt = new DataTable();
                OleDbDataAdapter da = new OleDbDataAdapter(cmd);
                da.Fill(dt);



                comboBox1.Enabled = true;
                foreach (DataRow dr in dt.Rows)
                {

               
                }
            }

    miércoles, 21 de marzo de 2018 3:43

Respuestas

  • hola

    porque no usas parametros en el select

    podrias ser algo como esto

    public class Costos
    {
    	public string prop1 {get;set;}
    	public string prop2 {get;set;}
    	public string prop3 {get;set;}
    }
    
    private Costos costo;
    
    private void comboBox2_SelectedIndexChanged(object sender, EventArgs e)
    {
    
    	string query = "select * from Costos where maquina = @maquina";
    	OleDbCommand cmd = new OleDbCommand(query, connection);
    	cmd.Parameters.AddWithValue("@maquina", comboBox2.SelectedItem.ToString());
    	
    	var reader = cmd.ExecureReader();
    
    
    	if(reader.Read)
    	{
    		costo = new Costo()
    		{
    			prop1 = reader["campo1"].ToString(),
    			prop2 = reader["campo2"].ToString(),
    			prop3 = reader["campo3"].ToString(),
    		};
    	}
    	
    	comboBox1.Enabled = true;
    } 

    ademas si lo valores estan relacionados no uses variables, crea una clase para asignar esta info y que quede relacionada

    aprende a programar orientado a objetos

    en el ejemplo como no sabia los nombres de los campos puses prop1..N pero puedes cambiarle el nombre

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina


    miércoles, 21 de marzo de 2018 5:03