elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recopilación Tutoriales y Manuales Hacking, Seguridad, Privacidad, Hardware, etc


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Cómo hago una búsqueda inteligente con una sentencia sql y en c#?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Cómo hago una búsqueda inteligente con una sentencia sql y en c#?  (Leído 3,208 veces)
irvincnt93

Desconectado Desconectado

Mensajes: 14


Ver Perfil
Cómo hago una búsqueda inteligente con una sentencia sql y en c#?
« en: 27 Febrero 2015, 01:36 am »

hola colegas necesito de su ayuda, tengo esta sentencia donde muestro una tabla actas unida a varias actas más. La ayuda que quiero es en el where, cómo ponerla en código c#, los valores en que selecciono en combobox son los que comparo en el where con cada id de mis tablas para hacer la búsqueda respectiva.

en mi Form tengo 6 combobox y los 6 están en mi comparación dentro del where para la comparación, pero en este caso esta mal para lo que quiero.

lo que pretendo es que haga varias tipos de búsquedas (o búsqueda inteligente o como se llame) ya sea que solo con el combobox de Departamentos (iddpto) y el de Materia (idmate) me muestre todos los valores que está en mi consulta. Pero después otra búsqueda con la comparación de con Periodo (idperi) con Departamento y con el grupo (grupo) y todas las combinaciones que se pueda.

un maestro me comentó que para hacer esto lo podía hacer de esta forma, que el comando.commandText lo meta en varios if anidados, la verdad no tengo idea de como.

ayuda porfis...


Código
  1. public void cargarActas()
  2.        {
  3.            string cadenaconexion = @"Data Source=IRVIN-PC;Initial Catalog=itiz;Integrated Security=True";
  4.            SqlConnection conexion = new SqlConnection();
  5.            SqlCommand comando = new SqlCommand();
  6.            SqlDataReader dr;
  7.            conexion.ConnectionString = cadenaconexion;
  8.            comando.Connection = conexion;
  9.            comando.CommandText = "select idacta, PE.nombrePeriodo, DE.nombreDpto, MA.nombreMateria, PR.nombreProfesor, TS.nombreTipoSemestre, grupo, clave, folio, ruta " +
  10.                                   "from Actas A join Periodos PE on A.idperi = PE.idperi " +
  11.                                   "join Departamentos DE on A.iddpto = DE.iddpto " +
  12.                                   "join Materias MA on A.idmate = MA.idmate " +
  13.                                   "join Profesores PR on A.idprofe = PR.idprofe " +
  14.                                   "join TipoSemestre TS on A.idtiposem = TS.idtiposem " +
  15.                                   "where idperi= '" + comboBox1.SelectedValue + "' and iddpto= '" + comboBox2.SelectedValue + "' and idmate= '" + comboBox3.SelectedValue + "' and idprofe= '" + comboBox3.SelectedValue + "'  and idtiposem= '" + comboBox3.SelectedValue + "' and idgrupo= '" + comboBox3.SelectedValue + "'";
  16.  
  17.  
  18.  
  19.            comando.CommandType = CommandType.Text;
  20.            conexion.Open();
  21.            dgvActas.Rows.Clear();
  22.            dr = comando.ExecuteReader();
  23.  
  24.            while (dr.Read())
  25.            {
  26.                int renglon = dgvActas.Rows.Add();
  27.                dgvActas.Rows[renglon].Cells["id_acta"].Value = dr.GetInt32(dr.GetOrdinal("idacta")).ToString();
  28.                dgvActas.Rows[renglon].Cells["id_peri"].Value = dr.GetString(dr.GetOrdinal("nombrePeriodo"));
  29.                dgvActas.Rows[renglon].Cells["id_dpto"].Value = dr.GetString(dr.GetOrdinal("nombreDpto"));
  30.                dgvActas.Rows[renglon].Cells["id_mate"].Value = dr.GetString(dr.GetOrdinal("nombreMateria"));
  31.                dgvActas.Rows[renglon].Cells["id_profe"].Value = dr.GetString(dr.GetOrdinal("nombreProfesor"));
  32.                dgvActas.Rows[renglon].Cells["id_tiposem"].Value = dr.GetString(dr.GetOrdinal("nombreTipoSemestre"));
  33.                dgvActas.Rows[renglon].Cells["grupo"].Value = dr.GetString(dr.GetOrdinal("grupo"));
  34.                dgvActas.Rows[renglon].Cells["clave"].Value = dr.GetString(dr.GetOrdinal("clave"));
  35.                dgvActas.Rows[renglon].Cells["folio"].Value = dr.GetString(dr.GetOrdinal("folio"));
  36.                dgvActas.Rows[renglon].Cells["ruta"].Value = dr.GetString(dr.GetOrdinal("ruta"));
  37.            }
  38.  
  39.  
  40.            conexion.Close();
  41.        }
  42.  
  43.  


« Última modificación: 27 Febrero 2015, 03:45 am por Eleкtro » En línea

FOXAR

Desconectado Desconectado

Mensajes: 7


Ver Perfil
Re: Cómo hago una búsqueda inteligente con una sentencia sql y en c#?
« Respuesta #1 en: 2 Marzo 2015, 22:21 pm »

bueno lo que se me ocurre es que crees una función en tu gestor de bases de datos y le mandes como parámetros los datos de tus 6 combibox y un parámetro digitado por ti que es un numero. en la función crearas los if anidados y los diferenciaras por el numero que quieras de esta manera puedes hacer las diferentes consultas.


En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.818



Ver Perfil
Re: Cómo hago una búsqueda inteligente con una sentencia sql y en c#?
« Respuesta #2 en: 3 Marzo 2015, 00:05 am »

Para llevar a cabo querys complejas y muy selectivas en las que, literalmente te pierdes, puedes hecharle mano a ciertas extensiones que se integran en la IDE de VisualStudio y te hacen practicamente todo el trabajo sucio, este tipo de característica se conoce con el intuitivo nombre de SQL Query Builder.

Una aplicación opensource:
SQLeo Visual Query Builder

Una aplicación comercial excelente:
Active Query Builder .NET WinForms Edition

Y otra aplicación comercial en la que es facil encontrar el crack (solo añado el dato, ya que no está permitido pedir o publicar cracks en el foro):
DbSchema
http://www.youtube.com/watch?v=fXPAC9l5ZPo

Espero que te sirva de algo,
Saludos
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problema en sentencia de búsqueda con varios valores.
Bases de Datos
mokoMonster 5 7,590 Último mensaje 27 Febrero 2014, 13:21 pm
por leo1972
como hago la busqueda por el nombre el codigo lo hace x el salario
Programación C/C++
vicrud 1 1,897 Último mensaje 23 Abril 2011, 19:11 pm
por Slava_TZD
Como saber si una persona es inteligente? que es ser inteligente? « 1 2 3 4 »
Foro Libre
$Edu$ 34 27,776 Último mensaje 31 Enero 2013, 12:14 pm
por ABDERRAMAH
Sentencia Goto en Php , Salto de sentencia en Php
PHP
Graphixx 3 3,623 Último mensaje 24 Mayo 2012, 17:46 pm
por Graphixx
Sentencia switch vs tablas de búsqueda
Programación C/C++
kutcher 9 2,989 Último mensaje 5 Septiembre 2014, 21:45 pm
por Eternal Idol
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines