CLR: .Net / Mono / Boo / Otros CLR > C#
Creando Consulta En Tiempo De Ejecución
(1/1)
marto:
Hola a todos!!!
Os cuento mi problema, estoy haciendo una pantalla de búsqueda sobre una tabla. Tengo un combo en el que me elijen el criterio de búsqueda y un text donde ponen el valor a buscar. Lo que se me ha ocurrido es definir una constante (que en el ejemplo esta como variable) con la parte de la query en comun y añadir el resto en función de la elección, os paso el código.
--- Código: Text --- SqlCommand c = new SqlCommand();c.CommandText = "SELECT id, RazonSocial, Direccion, Cp, Nif FROM Clientes "c.CommandType = CommandType.Text;c.Connection = conn;switch (cbCriterio.SelectedIndex){ case 0: c.CommandText += " AND UPPER(RazonSocial) = @razon"; c.Parameters.Add(new System.Data.SqlClient.SqlParameter("@razon", System.Data.SqlDbType.Variant)); c.Parameters["@razon"].Value = "%" + txtValor.Text.ToUpper()+ "%"; break; default: c.CommandText += " AND UPPER(Nif) = @Nif"; c.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Nif", System.Data.SqlDbType.VarChar, 9, "Nif")); c.Parameters["@Nif"].Value = "%" + txtValor.Text.ToUpper()+ "%"; break; }daCli.SelectCommand = c;dsClientes1.Clientes.Clear();daCli.Fill(dsClientes1);grid.DataSource = dsClientes1.Clientes; }
Si ejecuto este código quitando el switch, es decir, sin parametros, funciona ok. Pero poniendo los parámetros, al acer el fill me da este maravilloso error:
"Excepción no controlada del tipo 'System.Data.SqlClient.SqlException' en system.data.dll
Información adicional: Error del sistema."
¿Alguien sabe qué hago mal?
lechuza:
No es que hagas nada mal( a bote pronto).
Es que tienes que controlar si sucede la SqlException (si no da encontrado la BD o no puede establecer la conexión o errores varios o si la tabla no es válida).
Lo único que tienes que hacer es meter el código en un bloque try catch para esa exception y ya está.
Espero que se te arregle.
sergiotarrillo:
tu problema esta en la cosulta que agregas a la inicial, para que son los parametros......? :blink:
Navegación
Ir a la versión completa