[ Foro de C# ]

llamado a un case de una funcion

07-Nov-2015 18:14
Invitado (TFox)
2 Respuestas

Buenas, primeramente disculpen, estoy en un nivel medio del lenguaje, si me podrian despejar esta duda:
Tengo un formulario y en este tengo un combobox, que muestra datos de un campo que es Nombre de una tabla Articulo de una base de datos llamada VentaMusica
La cuestión es que tengo esta funcion en el codigo del formulario:
 public static void alternativasbus(string busqueda )
       {
           //Switch para variantes de busqueda
           busqueda = "";
           switch (busqueda)
           {
               case "Nombre":
                   List<Articulo> lista = new List<Articulo>();
                   using (SqlConnection con = Conexion.ObtenerConexion())
                   {
                       SqlCommand comando2 = new SqlCommand("BuscarporNombre", con);
                       comando2.CommandType = CommandType.StoredProcedure;
                       comando2.ExecuteNonQuery();
                       SqlDataReader reader = comando2.ExecuteReader();
                       while (reader.Read())
                       {

                           ga.particulo.Artista = reader.GetString(0);
                           ga.particulo.Estado = reader.GetString(1);
                           ga.particulo.Genero = reader.GetString(2);
                           ga.particulo.Precio = reader.GetDouble(3);
                           ga.particulo.Nombre = reader.GetString(4);
                           ga.particulo.Formato = reader.GetString(5);
                           ga.particulo.CiAlm = reader.GetInt32(6);
                           lista.Add(ga.particulo);
                           ga.dtgarticulos.DataSource = lista;
                       }

                   }
                   break;
               case "Artista":
                   {
                       List<Articulo> lista2 = new List<Articulo>();
                       using (SqlConnection con = Conexion.ObtenerConexion())
                       {
                           SqlCommand comando2 = new SqlCommand("BuscarporArtista", con);
                           comando2.CommandType = CommandType.StoredProcedure;
                           comando2.ExecuteNonQuery();
                           SqlDataReader reader = comando2.ExecuteReader();
                           while (reader.Read())
                           {

                               ga.particulo.Artista = reader.GetString(0);
                               ga.particulo.Estado = reader.GetString(1);
                               ga.particulo.Genero = reader.GetString(2);
                               ga.particulo.Precio = reader.GetDouble(3);
                               ga.particulo.Nombre = reader.GetString(4);
                               ga.particulo.Formato = reader.GetString(5);
                               ga.particulo.CiAlm = reader.GetInt32(6);
                               lista2.Add(ga.particulo);
                               ga.dtgarticulos.DataSource = lista2;
                           }

                       }
                   }
                   break;
               case "Genero":
                   {
                       List<Articulo> lista3 = new List<Articulo>();
                       using (SqlConnection con = Conexion.ObtenerConexion())
                       {
                           SqlCommand comando2 = new SqlCommand("BuscarporGenero", con);
                           comando2.CommandType = CommandType.StoredProcedure;
                           comando2.ExecuteNonQuery();
                           SqlDataReader reader = comando2.ExecuteReader();
                           while (reader.Read())
                           {

                               ga.particulo.Artista = reader.GetString(0);
                               ga.particulo.Estado = reader.GetString(1);
                               ga.particulo.Genero = reader.GetString(2);
                               ga.particulo.Precio = reader.GetDouble(3);
                               ga.particulo.Nombre = reader.GetString(4);
                               ga.particulo.Formato = reader.GetString(5);
                               ga.particulo.CiAlm = reader.GetInt32(6);
                               lista3.Add(ga.particulo);
                               ga.dtgarticulos.DataSource = lista3;
                           }

                       }
                   }
                   break;
               case "Precio":
                   {
                       List<Articulo> lista4 = new List<Articulo>();
                       using (SqlConnection con = Conexion.ObtenerConexion())
                       {
                           SqlCommand comando2 = new SqlCommand("BuscarporPrecio", con);
                           comando2.CommandType = CommandType.StoredProcedure;
                           comando2.ExecuteNonQuery();
                           SqlDataReader reader = comando2.ExecuteReader();
                           while (reader.Read())
                           {

                               ga.particulo.Artista = reader.GetString(0);
                               ga.particulo.Estado = reader.GetString(1);
                               ga.particulo.Genero = reader.GetString(2);
                               ga.particulo.Precio = reader.GetDouble(3);
                               ga.particulo.Nombre = reader.GetString(4);
                               ga.particulo.Formato = reader.GetString(5);
                               ga.particulo.CiAlm = reader.GetInt32(6);
                               lista4.Add(ga.particulo);
                               ga.dtgarticulos.DataSource = lista4;
                           }

                       }
                   }
                   break;
               case "Formato":
                   {
                       List<Articulo> lista5 = new List<Articulo>();
                       using (SqlConnection con = Conexion.ObtenerConexion())
                       {
                           SqlCommand comando2 = new SqlCommand("BuscarporFormato", con);
                           comando2.CommandType = CommandType.StoredProcedure;
                           comando2.ExecuteNonQuery();
                           SqlDataReader reader = comando2.ExecuteReader();
                           while (reader.Read())
                           {

                               ga.particulo.Artista = reader.GetString(0);
                               ga.particulo.Estado = reader.GetString(1);
                               ga.particulo.Genero = reader.GetString(2);
                               ga.particulo.Precio = reader.GetDouble(3);
                               ga.particulo.Nombre = reader.GetString(4);
                               ga.particulo.Formato = reader.GetString(5);
                               ga.particulo.CiAlm = reader.GetInt32(6);
                               lista5.Add(ga.particulo);
                               ga.dtgarticulos.DataSource = lista5;
                           }

                       }
                   }
                   break;
           }
       }
/////////////////////////////////////////////////////////////////////
Y cada case llena un datagridview ordenandolo alfabeticamente dependiendo el campo
Lo que quiero es que cuando se seleccione alguno se llene el datagridview
Para esto trate de llamar a cada uno mediente un if en el evento selectedindexchanged de el combobox, algo asi:
if (cmbbuscarart.Text == "Artista")
           {
               alternativasbus("Artista");
           }
           if (cmbbuscarart.Text == "Genero")
           {
               alternativasbus("Genero");
           }
trate de hacerlo y no me jala los datos al datagridview; sintetizando mi pregunta es cual es la sintaxis correcta para  llamar un case en particular de una funcion???? Gracias de antemano


10-Nov-2015 11:21
Carlos Rodriguez (+1)

Yo aria un methodo pro cada case asi puedo llamar ese methodo desde otros lados tambien.


10-Nov-2015 11:25
Carlos Rodriguez (+1)

Ejemplo:
case "Nombre":
                {
                          nombre();
                  }

public void nombre()
{
List<Articulo> lista4 = new List<Articulo>();
                      using (SqlConnection con = Conexion.ObtenerConexion())
                      {
                          SqlCommand comando2 = new SqlCommand("BuscarporPrecio", con);
                          comando2.CommandType = CommandType.StoredProcedure;
                          comando2.ExecuteNonQuery();
                          SqlDataReader reader = comando2.ExecuteReader();
                          while (reader.Read())
                          {

                              ga.particulo.Artista = reader.GetString(0);
                              ga.particulo.Estado = reader.GetString(1);
                              ga.particulo.Genero = reader.GetString(2);
                              ga.particulo.Precio = reader.GetDouble(3);
                              ga.particulo.Nombre = reader.GetString(4);
                              ga.particulo.Formato = reader.GetString(5);
                              ga.particulo.CiAlm = reader.GetInt32(6);
                              lista4.Add(ga.particulo);
                              ga.dtgarticulos.DataSource = lista4;
                          }

                      }
}






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)