Entradas

Mostrando entradas de 2010

SQL. Insertar registros

En este punto veremos como insertar registros a una tabla de SQL. La sintaxis es la siguiente: INSERT INTO [tabla] VALUES([valor1], [valor2], ..., [valorN]) Un ejemplo sería el siguiente: INSERT INTO tblUsuario VALUES ('juan', 'juan lopez') INSERT INTO tblAutos VALUES ('nissan', 'blanco') En caso de que no conozcamos el orden de los campos tal como aparecen en nuestra tabla de SQL podemos poner el nombre del campo justo despues del nombre de la tabla INSERT INTO [tabla] ([campo1], ..., [campoN]) VALUES ([valor1], ..., [valorN]) Por ejemplo: INSERT INTO tblUsuario(NombreCorto, Nombre)  VALUES ('juan', 'juan lopez') INSERT INTO tblAutos(Marca, Color)  VALUES ('nissan', 'blanco')

Campos con valores por omisión

Existe la posibilidad de que un campo pueda tener un valor por omisión, para ello haremos uso de la palabra reservada DEFAULT . La sintaxis es la siguiente: [Campo] [Tipo de Dato] CONSTRAINT [Nombre constraint] DEFAULT [Valor] Donde: [Campo] : Es el nombre del campo [Tipo de dato]: Es el tipo de dato del campo CONSTRAINT [Nombre constraint]: Es el nombre que se le asignará al constraint. Es opcional, si se omite el SQL asignará el nombre de la constraint DEFAULT [Valor]: Es el valor por default del campo Ejemplos: CREATE TABLE tblAutos (    Marca Varchar(10),    Año Int ,    Precio Money CONSTRAINT [Def_Precio] DEFAULT (0),    Usuario Int  )

Llaves foráneas

La sintaxis para crear llaves foráneas es la siguiente: FOREING KEY [Campo] REFERENCES [Tabla2] ([Campo_Tabla2]) Al igual que en las llaves primaria, aquí tambien tenemos la opción de poner el nombre de la CONSTRAINT y evitar que sea el SQL quien asigne el nombre: CONSTRAINT [Nombre_Constraint] FOREING KEY [Campo] REFERENCES [Tabla2] ([Campo_Tabla2]) Supongamos que tenemos una tabla de usuarios y una tabla de autos, a la que a cada auto le asignaremos un usuario, entonces para crear esta llave foránea haríamos lo siguiente: CREATE TABLE tblAutos (    Marca Varchar(10) NOT NULL,    Año Int NOT NULL,    Precio Money,    Usuario Int NOT NULL,    CONSTRAINT FK_tblAutos_tblUsuarios  FOREING KEY Usuario REFERENCES tblUsuarios(ID) )

Llaves primarias en SQL

La sintaxis para crear una llave primaria en una tabla de SQL es la siguiente: CREATE TABLE [NombreTabla] (    [Campo1] [TipoDato],    ...    PRIMARY KEY ([Campo1], ..., [CampoN]) ) La llave primaria puede estar compuesta por múltiples campos o bien puede ser únicamente un campo, también hay que tomar en cuenta que para que un campo pueda ser llave primaria este no debe permitir valores Nulos. Al crear una llave primaria el SQL Server le asigna automáticamente un nombre a la Constraint, en caso de que nosotros no deseemos que suceda eso, le podemos asignar el nombre a esa Constraint de la siguiente manera CONSTRAINT [NombreConstraint] PRIMARY KEY ([Campo1], ..., [CampoN]) Ahora bien, si ya tenemos creada la tabla y queremos ponerle llaves primaria tendríamos que hacer uso de la sentencia ALTER TABLE ALTER TABLE [NombreTabla] ADD CONSTRAINT [NombreConstraint] PRIMARY KEY ([Campo1], ..., [CampoN]) Aqui algunos ejemplos: CREATE TABLE tblUsuarios (    ID Int NOT NULL,    Clave Varchar(

Creación de tablas en SQL

A continuación veremos la sintaxis mínima requerida para crear una tabla en el SQL CREATE TABLE [NombreTabla] (    [Campo1] [TipoDato],    [Campo2] [TipoDato],    ...    [CampoN] [TipoDato] ) Donde: [NombreTabla] Es el nombre de la tabla. [Campo1] Es el nombre del campo. [TipoDato] Es el tipo de dato. Algunos de los tipos de datos que podemos utilizar son los siguientes: Varchar(n): Donde n es el número de caracteres que podrá tener el campo. Int Datatime Money Y a continuación, les dejo unos ejemplos: CREATE TABLE tblUsuarios (    ID Int,    Clave Varchar(10),    Nombre Varchar(100),    FechaRegistro Datetime ) CREATE TABLE tblAutos (    Marca Varchar(10),    Año Int,    Precio Money )

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 =

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"

Metodo Compute de un DataTable con filtros

Ahora, lo que haremos será utilizar filtros en el método Compute. Siguiendo con nuestro ejemplo anterior, supongamos que deseemos obtener el promedio de hombres o mujeres; nuestra sentencia quedaría de la siguiente manera: DT.Compute("AVG(Promedio)", "(Sexo = 'M')")   'Promedio de calificaciones de mujeres DT.Compute("AVG(Promedio)", "(Sexo = 'H')")   'Promedio de calificaciones de hombre También podemos tener mas de una condición utilizando los operadores AND ú OR, por ejemplo, con la siguiente sentencia obtendriamos el promedio de hombres que se llaman Manuel. DT.Compute("AVG(Promedio)", "(Sexo = 'H') AND (Nombre = 'Manuel')") Aquí también tenemos la opción de utilizar el operador LIKE de la misma manera en que se utiliza en las sentencias SQL, por ejemplo, con la siguiente línea podremos saber cuantos alumnos tienen un nombre que comienza con la letra A. DT.Compute(&qu

Método Compute de un DataTable

Ahora veremos las funciones más importantes del método Compute de un DataTable, tales como Count, Max, Min y Avg. Para ello, crearemos un listado de alumnos con sus respectivos promedios y a partir de esos promedios haremos nuestros cálculos. Nuestro DataTable estará formado por los campos Nombre, Sexo y Promedio. Con la siguiente línea obtendremos el promedio de calificaciones de nuestros alumnos. DT.Compute("AVG(Promedio)", "") Con la siguiente línea obtendremos la calificación máxima de los alumnos DT.Compute("MAX(Promedio)", "") Con la siguiente línea obtendremos la calificación mínima de los alumnos DT.Compute("MIN(Promedio)", "") Con la siguiente línea obtendremos el número de alumnos DT.Compute("COUNT(Nombre)", "") Con la siguiente línea obtendremos la suma de las calificaciones de los alumnos DT.Compute("SUM(Promedio)","") Por ahora no

Funciones básica de un DataTable

Ahora lo que veremos será aprender a utilizar las funciones básicas de un DataTable, veremos como declarar un DataTable, agregar registros, eliminar registros, actualizar registros, entre otras opciones. La mayoría de las sentencias no difieren entre C# y VB.NET (a excepción que en C# todas las sentencias terminan con punto y coma), por lo que si no aparece la marcación de C# ó VB.NET implica que funciona igual en ambos lenguajes. Declaración de un DataTable La creación de un DataTable se hace con la siguiente sentencia: C# DataTable DT = new DataTable(); VB Dim DT As New DataTable() Agregar columnas a un DataTable Para agregar columnas a un Datatable se hace de la siguiente manera: DT.Columns.Add([NOMBRE_COLUMNA], [TIPO_DATO]) Por ejemplo: DT.Columns.Add("Clave", Type.GetType("System.String")) Algunos de los tipos de datos que puede tener una columna de un DataTable: String, Int16, Int32, Int64, Byte, DateTime, etc. También, debo recalcar que el tipo de da

Seleccionar registros de un GridView

Imagen
La última opción que nos falta por agregar a nuestro GridView es la opción de seleccionar registros. Para ello tendremos que agregar una columna más al GridView, la columna será tipo TemplateField <asp:TemplateField>     <ControlStyle Width="15px" Height="15px" />     <ItemTemplate>         <table cellpadding="0px" cellspacing="0px" width="100%">             <tr>                 <td>                     <asp:ImageButton ID="btnSeleccionar" runat="server"                         ImageUrl="~/Imagenes/Seleccionar.ico"                         CommandName="Select"                         />                 </td>             </tr>         </table>     </ItemTemplate> </asp:TemplateField> También le colocaremos un formato especial para las filas que estén seleccionadas, haremos que se pinten de color amarillo los registros que

Formateando nuestro GridView

Imagen
Ahora vamos a ponerle diseño a nuestro GridView. Las filas de nuestro GridView serán de color Gris y las filas alternas serán de color Gris oscuro, el encabezado lo dejaremos en color Negro. Para ello agregaremos las siguientes tres líneas al código de nuestro GridView. <RowStyle BackColor="Gray" /> <AlternatingRowStyle BackColor="DarkGray" /> <HeaderStyle BackColor="Black" ForeColor="White" /> Nuestro GridView quedaría de la siguiente manera:

Modificando nuestro GridView

Ahora vamos a realizar algunos cambios a nuestro grid para tener un mejor control sobre sus columnas. Primero quitaremos la propiedad que genera automáticamente las columnas de nuestro GridView esto para poder cambiar el ancho de nuestras columnas. Después cambiaremos nuestros CommandFields por TemplateFields, que el funcionamiento es idéntico pero con esta propiedad podremos manipular de mejor manera nuestros botones. Entonces, nuestro GridView quedará de la siguiente manera. <asp:GridView ID="dgvListado" runat="server"     OnRowEditing="dgvListado_RowEditing"     OnRowUpdating="dgvListado_RowUpdating"     OnRowCancelingEdit="dgvListado_RowCancelingEdit"     OnRowDeleting="dgvListado_RowDeleting"                           AutoGenerateColumns="false">           <%--  AutoGenerateColumns. Quitamos la opción de que el GridView nos genere las columnas --%>     <Columns>         <as