[ Foro de C# ]
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
Yo aria un methodo pro cada case asi puedo llamar ese methodo desde otros lados tambien.
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.)