C# CGI UNIDAD 5: INTRODUCION A LAS BASES DE DATOS

TEMA 10: FILTROS


Otro problema similar al anterior es el de filtros es decir en muchas ocasiones es necesario obtener información acerca de un subconjunto de renglones de la tabla.

Por ejemplo todos los estudiantes que sean mayores de 17 años, todos los clientes que sean de Tijuana, etc., a esto le llamamos filtros o condiciones.

Tambien se resuelve de manera similar al anterior, es decir usando la instrucción select etc, from tabla, where CONDICION;

Codigo prog21.html

<HTML>
<FORM ACTION=/cgi-bin/tusitio/prog21.exe METHOD=get>
EDAD > =<INPUT TYPE=text NAME=EDAD><BR>
<INPUT TYPE=submit VALUE=BUSCAR>
</FORM></HTML>

corrida prog21.html

image316.jpg

prog21.cs

using System;
using System.Data;
using System.Data.OleDb;
public class prog21
{
// creando y cargando coneccion, adpater como variables globales
static OleDbConnection coneccion;
static OleDbDataAdapter canal;
public static void Main()
{
lnet capturar=new lnet();
string edad= capturar.getparametro("EDAD");
coneccion=new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;DataSource=c:\\progfacil\\tusitio\\mibase.mdb");
string q="select * from mitabla where edad >= @EDAD";
canal=new OleDbDataAdapter(q, coneccion);
// clave es string porque oledbtype es quien la convierte
canal.SelectCommand.Parameters.Add(new OleDbParameter("@EDAD", OleDbType.Integer));
canal.SelectCommand.Parameters["@EDAD"].Value = edad;
// creando y cargando un nuevo dataset que solo contiene el
// renglo 0(cero) buscado
DataSet tabla=new DataSet();
canal.Fill(tabla, "mitabla");
// desplegando pero en tabla porque dataset tiene varios renglones
// cargando el table de html con el dataset
System.Console.WriteLine("Content-Type:text/html\n");
System.Console.WriteLine("<HTML><TABLE Border=10 CellPadding=5><TR>");
// construyendo los encabezados de la tabla
System.Console.WriteLine("<th bgcolor=Green>CLAVE</th><th bgcolor=White>NOMBRE</th><th bgcolor=Red>EDAD</th></TR>");
// calculando la cantidad de renglones de la tabla dataset
// y empezar a estudiar las propiedades del dataset
int cren=tabla.Tables["mitabla"].Rows.Count;
// ciclo for renglon para visitar todos los renglones de la tabla dataset
// ciclo interno for columna para pasar el dato del dataset al table html
for (int reng=0; reng <= cren-1; reng++)
{ System.Console.WriteLine("<TR>");
for(int col=0; col<=2; col++)
{
// cargando el dato a una variable string para que no quede muy grande el writeline de despliegue
string temp=tabla.Tables["mitabla"].Rows[reng][col].ToString();
System.Console.WriteLine("<TD>"+temp.ToString()+"</TD>");
} //termina for col
System.Console.WriteLine("</TR>");
} // termina for renglon
System.Console.WriteLine("</HTML>");
// cerrando todo
coneccion.Close();
} }

Nota: siguen siendo combinaciones de los programas anteriores pero seria prudente mejor usar dos combobox uno para la variable, otro para el operador relacional y un text para el dato y mandar estos tres datos al prog21.exex (se ocupan varios command.parameters()), pero eso queda de tarea.

Corrida prog21.cs o exe

image317.jpg

Problemas sugeridos:

1.- preparar programas de filtrado para sus bases de datos, recordar que sus formas html's deben construirlas con 2 combos y un text, suerte

Politica de Privacidad