domingo, 18 de julio de 2010

Método Select de un DataTable

Abra ocasiones en que deseemos obtener únicamente ciertos registros de un DataTable, anteriormente ya había presentado la forma de hacer uso de éste método pero ahora lo veremos un poco más a detalle.

El método Select de un DataTable nos regresa un arreglo de DataRow's, por lo que debemos haber declarado previamente un DataRow
   VBNET
   Dim DR() As DataRow;
   C#
   DataRow[] DR;

Para comenzar a ver los tres casos que voy a presentar vamos a suponer que tenemos un DataTable con cuatro campos: Clave, Nombre, Cuidad y Sexo.

Caso 1. Sin filtros
Si a nuestro método Select no le colocamos ningún filtro, el resultado nos arrojará todos los registros del DataTable en un arreglo de DataRow's.
DR = DT.Select();

Caso 2. Filtro simple
Si queremos leer algún registro en específico entonces tendremos que agregar un filtro al método Select.
DT.Select("CAMPO = VALOR")
Con la siguiente sentencia leeríamos todos los usuarios de sexo femenino.
DR = DT.Select("Sexo = 'F'");

Caso 3. Filtros múltiples


Si queremos que el registro cumpla varias condiciones tendremos que hacer uso de los operadores AND y OR
DT.Select("CAMPO1 = VALOR1 AND CAMPO2 = VALOR2")
Con la siguiente sentencia leeríamos todos los usuarios de sexo femenino y que además radican en Monterrey.
DR = DT.Select("Sexo = 'F' AND Ciudad = 'Monterrey'");

domingo, 4 de julio de 2010

Cargar un GridView con un DataSource

Ahora veremos como llenar un GridView a partir de un DataSource y no con un DataTable como lo habíamos hecho anteriormente.

Primero tendremos que crear un DataSource, asignarle la cadena de conexión a nuestro servidor SQL y poner nuestra sentencia SQL.


<asp:SqlDataSource ID="SqlDataSource1" runat="server" 
        ConnectionString="<%$ ConnectionStrings:cnConexion %>" 
        SelectCommand="SELECT [EmployeeID], [LastName], [FirstName] FROM [Employees]">
</asp:SqlDataSource>

Esto se puede hacer en modo diseño, para evitar tener que ingresar el código de forma directa.

Posteriormente debemos asignarle nuestro DataSource al GridView de nuestra página.


<asp:GridView ID="grdListado" runat="server" AutoGenerateColumns="False" 
    DataKeyNames="EmployeeID" DataSourceID="SqlDataSource1">
    <Columns>
        <asp:BoundField DataField="EmployeeID" HeaderText="EmployeeID" 
            InsertVisible="False" ReadOnly="True" SortExpression="EmployeeID" />
        <asp:BoundField DataField="LastName" HeaderText="LastName" 
            SortExpression="LastName" />
        <asp:BoundField DataField="FirstName" HeaderText="FirstName" 
            SortExpression="FirstName" />
    </Columns>
</asp:GridView>

Si le asignamos el DataSource en modo diseño, el Visual Studio generará automáticamente las columnas del GridView, lo que nos facilitará aun mas las cosas.

Saludos...