none
Select Max en C# RRS feed

  • Pregunta

  • Hola Amigos el dia de hoy les pido ayuda en una pequeña cosa q necesito lo q pasa es que necesito que cuando yo elija un numero de un dropdownlist1(ubicacion) y de otro dropdownlist2(caja) me de el numero mayor de una factura pero nose como hacer eso en c#asi ams o menos tenia.

    -todo es con parametros:

    - quiero que a lo q elija la ubicacion y la caja ya automaticamente en el textbox1 me aparesca el numero de factura.

    SqlConnection conn = new SqlConnection();
                conn.ConnectionString = @"Data Source=localhost;Initial Catalog=lllll;Persist Security Info=True;User ID=llll;Password=lll";
                SqlCommand cmdd = new SqlCommand(@"SELECT @valor=MAX(Rli_Fac_numero) FROM dbo.Com_Recaudacion_linea where Rli_Fac_ubicacion=@Ubicacion and Rli_Fac_caja=@Caja", conn);
                cmdd.Parameters.Add("@valor", SqlDbType.VarChar, 20);
                cmdd.Parameters["@valor"].Value = TextBox1.Text;
                cmdd.Parameters.Add("@Ubicacion", SqlDbType.VarChar, 20);
                cmdd.Parameters["@Ubicacion"].Value = this.Dpubicaci.Text;
                cmdd.Parameters.Add("@Caja", SqlDbType.VarChar, 20);
                cmdd.Parameters["@Caja"].Value = this.Dpcaj.Text;
                conn.Open();
                using (SqlDataReader reader = cmdd.ExecuteReader())
                {
                    while (reader.Read())
                        TextBox1.Text = reader["@valor"].ToString();
                    reader.Close();
                }
                cmdd.ExecuteNonQuery();
                conn.Close();

    espero me puedan ayudar de antamno muchas gracias.


    Andres Bermudez

    viernes, 23 de agosto de 2013 17:00

Todas las respuestas

  • Hola:

     Podrias hacer una funcion como esta:

            public static int MaxId()
            {
                using (SqlConnection sqlCon = new SqlConnection(ConfigurationManager.ConnectionStrings["CadenaDeConexion"].ToString()))
                {
                    sqlCon.Open();
    
                    const string sqlAction = "Select Isnull(Max(NumFactura), 0) as IdMaximo From Tabla";
    
                    using (SqlCommand cmd = new SqlCommand(sqlAction, sqlCon))
                    {
                        SqlDataReader dr = cmd.ExecuteReader();
                        if (dr.Read())
                        {
                            return Convert.ToInt32(dr["IdMaximo"]);
                        }
                        return 0;
                    }
                }
            }

     Esta funcion la mandas a llamar  en donde tu quieras y tomas el valor de esta manera:

     TextBox1.Text = Convert.Tostring(MaxId());


    Saludos desde Monterrey, Nuevo León, México!!!


    viernes, 23 de agosto de 2013 17:09
  • Hola andres, si usas dropdownlist entonces estas pasando mal el parametro en ubicacion y caja... 

    cmdd.Parameters["@Ubicacion"].Value = this.Dpubicaci.Text;  

     cmdd.Parameters["@Caja"].Value = this.Dpcaj.Text;

    Los valores en los dropdownlist deberias obtenerlos así

    cmdd.Parameters["@Ubicacion"].Value = this.Dpubicaci.SelectedValue;   cmdd.Parameters["@Caja"].Value = this.Dpcaj.SelectedValue;

    Eso si los tienes como value.... si lo que quieres recuperar es el texto como tal, o sea lo que se muestra deberias hacer:

    cmdd.Parameters["@Ubicacion"].Value = this.Dpubicaci.SelectedItem.Text;  
     cmdd.Parameters["@Caja"].Value = this.Dpcaj.SelectedItem.Text;

    Espero te sirva, Saludos

    viernes, 23 de agosto de 2013 17:09
  • osea q solo esa parte estoy haciendo mal o tengo algun otro error que tengo que corregir para q funcione el programa y gracias de antemano por contestar

    Andres Bermudez

    viernes, 23 de agosto de 2013 17:23