Sunteți pe pagina 1din 15

SQL Server

Microsoft SQL Server es un sistema de manejo de bases de datos del modelo relacional, desarrollado por la
empresa Microsoft.

El lenguaje de desarrollo utilizado (por lnea de comandos o mediante la interfaz grfica de Management Studio)
es Transact-SQL (TSQL), una implementacin del estndar ANSI del lenguaje SQL, utilizado para manipular y
recuperar datos (DML), crear tablas y definir relaciones entre ellas (DDL).

Dentro de los competidores ms destacados de SQL Server estn: Oracle, MariaDB, MySQL, PostgreSQL. SQL
Server solo est disponible para sistemas operativos Windows de Microsoft.

Puede ser configurado para utilizar varias instancias en el mismo servidor fsico, la primera instalacin lleva
generalmente el nombre del servidor, y las siguientes - nombres especficos (con un guion invertido entre el nombre
del servidor y el nombre de la instalacin).

Caractersticas.

Soporte de transacciones.

Soporta procedimientos almacenados.

Incluye tambin un entorno grfico de administracin, que permite el uso


de comandos DDL y DML grficamente.

Permite trabajar en modo cliente-servidor, donde la informacin y datos se alojan en el servidor y


los terminales o clientes de la red slo acceden a la informacin.

Adems permite administrar informacin de otros servidores de datos

Capacidades y herramientas bsicas.


Bases de datos:

En cada instalacin de SQL Server hay 4 bases de datos de sistema, y la capacidad de crear nuevas bases de
datos por el usuario, en los cuales los datos estn almacenados en tablas.

Estas bases de datos, creadas por parte de los usuarios, incluyen bsicamente un archivo de datos (con el sufijo
mdf) con las tablas y los distintos objetos a nivel de la base de datos; y un archivo de registro (con el sufijo ldf) con
las transacciones abiertas, y transacciones cerradas, Sujeto al modelo de recuperacin seleccionado (se puede
acumular en el archivo de registro todos los cambios en la base de datos desde el ltimo respaldo). Se puede crear
un conjunto de archivos de datos adems del principal (con el sufijo ndf) por consideraciones de eficiencia,
particin de carga de trabajo entre los discos rgidos, etc.

Las bases de datos del sistema:

master - Todos los procedimientos, funciones y tablas del sistema que estn utilizadas por parte de todas
las bases de datos y que estn instaladas automticamente, tanto como las que han sido creado por parte de
los administradores del sistema. Adems, todas las definiciones en respecto a la seguridad a nivel del servidor,
estn almacenadas en esta base de datos.

msdb - Almacenamiento de las tareas del agente, los cdigos de CLR combinados en el sistema, los
paquetes de SSIS, y otros ms.

model - El molde de las bases de datos. Cada nueva base de datos se crea como una copia de esta base
de datos, menos que algo ms estaba definido explcitamente.

tempdb - Base de datos temporal que se crea de nuevo cada vez que el servicio reinicia. Se utiliza para
almacenar tablas temporales creadas por parte de los usuarios o el sistema (por ejemplo en ordenaciones
complejos).

Tablas fijas y temporales:


Desde la perspectiva lgica, los datos almacenados en las bases de datos en tablas, que mediante ellas se
implementan la teora de las bases de datos relacionales. La tabla se divide en filas y columnas (A veces se les
conoce como registros y campos). Las tablas pueden ser fijas o temporales, mientras que en el segundo caso
existen fsicamente en la base de datos tempdb, y se borran automticamente en caso de desconexin de la sesin
o de la conexin al servidor, depende en el tipo de la tabla temporal.
Desde la perspectiva fsica, el sistema divide los archivos de la base datos en Extents de 64 KB, y cada cual a ocho
pginas de 8 KB. Generalmente, cada Extent se asigna a una tabla o un ndice, menos las tablas pequeas; y cada
pgina se asigna siempre a una tabla especfica. El sistema es responsable del aumento de los archivos, de
acuerdo con los ajustes del usuario, y de asignar Extents y pginas a las tablas.
A las tablas se puede crear ndices. Los ndices se almacenan junto a la tabla (Non Clustered Index) o son la tabla
en s (Clustered Index). Los ndices asisten en la bsqueda de datos en las tablas (como los ficheros en las
libreras), en ordenarlas, y la definicin de claves primarias.
Entre las tablas se puede crear una relacin de uno a muchos.
Aparte de las tablas de los usuarios, hay tablas que almacenan meta data: datos sobre el sistema mismo, los
diferentes objetos, los derechos, estadsticas sobre el rendimiento del sistema (DMV), etc.

Tipos de datos:
Para cada columna en una tabla y a cada variable o parmetro, se define un tipo de datos que sean almacenados
en l, entre ellos:

1. Nmeros: Nmeros enteros y no enteros en distintos tamaos, y en diferentes niveles de precisin; y auto
incremento opcional.

2. Textos: Cadenas de distintas longitudes, y distintas capacidades de apoyar distintas lenguas.

3. Fechas: Fechas en distintos niveles de precisin, desde das completos hasta fracciones menores de un
segundo, que apoyan fechas a partir del principio del siglo 20 o del calendario gregoriano, y la capacidad
de diferenciar entre distintos usos de horarios.

4. XML: Datos textuales (cadenas) que representan conjuntos estndares de datos (estndar SGML).

5. Datos binarios: Datos almacenados como datos binarios (bits y bytes), que posibilitan el almacenamiento
de archivos grficos, etc.

6. Geography: Representacin estndar de informacin geogrfica, tales como estados, zonas geogrficas,
localidades; y las clculos como distancias.

7. Geometry: Representacin estndar de puntas, lneas, superficies en el plano; y las relaciones entre ellas.
8. Hierarchid: Representacin estndar de informacin jerrquica como lista de materiales, relaciones de
subordinacin entre empleados, etc.

Funciones definidas por el usuario:


Las funciones son un objeto que combina algunas capacidades de las vistas, con otras de los procedimientos.
Como las vistas, pueden extraer datos y ejecutar clculos, y devuelven un resultado al usuario o al programa que
les ejecuto. Tanto como los procedimientos, incluyen cdigos de TSQL, y pueden ser ejecutados con parmetros.
Las funciones devuelven un valor o un conjunto de valores.
Las funciones definidas por el usuario se crean con la instruccin CREATE FUNCTION, se modifican con la
instruccin ALTER FUNCTION y se quitan con la instruccin DROP FUNCTION. Todos los nombres de funciones
completos (database_name.owner_name.function_name) definidos por el usuario deben ser nicos. Para crear,
modificar o quitar funciones definidas por el usuario, debe tener permisos de CREATE FUNCTION. Los usuarios
distintos del propietario deben tener permiso EXECUTE para una funcin, y solo as podrn utilizarla en una
instruccin de Transact-SQL. Para crear o modificar tablas con referencias a funciones definidas por el usuario en
la restriccin CHECK, la clusula DEFAULT o la definicin de una columna calculada, tambin debe tener permiso
REFERENCES para las funciones. Los errores de Transact-SQL que producen la cancelacin de una instruccin y
continan con la siguiente instruccin del mdulo, como desencadenadores o procedimientos almacenados, se
tratan de forma distinta dentro de una funcin. En las funciones, estos errores hacen que se detenga la ejecucin
de la funcin. Esto hace que se cancele la funcin que invoc la instruccin. Una funcin definida por el usuario no
tiene ninguno o tiene varios parmetros de entrada y devuelve un valor escalar o una tabla. Una funcin puede
tener un mximo de 1024 parmetros de entrada. Cuando un parmetro de la funcin toma un valor
predeterminado, debe especificarse la palabra clave DEFAULT al llamar a la funcin para poder obtener el valor
predeterminado. Este comportamiento es diferente del de los parmetros con valores predeterminados de los
procedimientos almacenados, para los cuales omitir el parmetro implica especificar el valor predeterminado. Las
funciones definidas por el usuario no admiten parmetros de salida.

Cmo de instala?.
1. Para iniciar la instalacin, haga doble clic en sqlexpr.exe.

Nota:

SQL Server Express est disponible como un archivo ejecutable autoextrable (sqlexpr.exe) desde el
CD de Visual Studio 2005 y desde el sitio Web de SQL Server Express. SQLEXPR.EXE se instala en
equipos basados en x86 y en el subsistema de 32 bits (WOW64). Para obtener ms informacin,
vea Requisitos de hardware y de software (SQL Server Express).

2. En la pgina Contrato de licencia para el usuario final, lea el contrato de licencia y, a continuacin,
active la casilla Acepto los trminos y condiciones de la licencia. Haga clic en Siguiente.
3. Se ejecutar la Actualizacin de componentes de SQL Server para instalar el software
necesario antes de instalar SQL Server Express. Para obtener ms informacin acerca de los
requisitos de los componentes, haga clic en el botn Ayuda en la parte inferior de la pgina. Haga
clic en Siguiente.
Importante:

.NET Framework 2.0 no se instala cuando se ejecuta la Actualizacin de componentes de SQL Server, pero
el programa de instalacin de SQL Server Express necesita que .NET Framework 2.0 est instalado antes de
ejecutar el archivo sqlexpr.exe. Si .NET Framework 2.0 no est instalado, se producir un error. Asegrese de
desinstalar todas las versiones anteriores de .NET Framework y de instalar .NET Framework 2.0. Desde
el Centro de descarga de .NET Framework 2.0 antes de iniciar el programa de instalacin de SQL Server
Express.

4. Se abrir la pgina Asistente para la instalacin de Microsoft SQL Server. Haga clic en Siguiente.
5. En la pgina Comprobacin de configuracin del sistema, se examina el equipo para detectar
posibles problemas de instalacin. Para interrumpir la exploracin, haga clic en Detener. Para
continuar el programa de instalacin una vez finalizada la exploracin, haga clic en Continuar.
6. En la pgina Informacin de registro, escriba informacin en los cuadros de
texto Nombre y Compaa. Haga clic en Siguiente.

a. Debido a que SQL Server Express es gratuito, no aparece el cuadro de texto Clave de
producto en esta pgina.

b. Si selecciona la casilla Ocultar opciones de configuracin avanzadas, las pginas


Cuenta de servicio, Configuracin de intercalacin, Nombre de instancia e Instancias de
usuario no aparecen durante la instalacin.

7. En la pgina Seleccin de caractersticas, seleccione las caractersticas del programa que desee
instalar y haga clic en Siguiente.

Nota:

El programa de instalacin de SQL Server Express no tiene una pgina de seleccin de caractersticas
personalizadas. En su lugar, la pgina Seleccin de caractersticas permite seleccionar las caractersticas que
desee instalar. Puede expandir una caracterstica para ver las subcaractersticas que contiene; para ello, haga
clic en el signo "+".

8. En la pgina Nombre de instancia, seleccione una Instancia predeterminada o una Instancia


con nombre para la instalacin. Si selecciona Instancia predeterminada, se actualizar una
instancia predeterminada existente. Si selecciona Instancia con nombre, especifique el nombre
de una instancia; de lo contrario, se utilizar la instancia con nombre predeterminada
de SQLExpress. Haga clic en Siguiente.
Haga clic en Instancias instaladas para ver una lista de los componentes y las instancias de SQL
Server Express instalados en el equipo en el que se est ejecutando el programa de instalacin de
SQL Server Express. El panel de detalles de las instancias instaladas mostrar las opciones de
actualizacin para las instancias instaladas.
Al iniciarse, el programa de instalacin de SQL Server Express comprueba si existe el nombre de
instancia SQLExpress.
a. Si la instancia SQLExpress ya existe, aparece de manera predeterminada la pgina Nombre
de instancia.

b. Si la instancia SQLExpress no existe, la pgina Nombre de instancia se oculta al usuario de


manera predeterminada. No obstante, si desactiva la casilla Ocultar opciones de
configuracin avanzadas en la pgina Informacin de registro, el cuadro de
dilogo Nombre de instancia aparecer siempre.

9. La pgina Cuenta de servicio permite asignar una cuenta del sistema local o una cuenta de
usuario de dominio al servicio de SQL Server. Esta pgina no aparece si selecciona la
casilla Ocultar opciones de configuracin avanzadas

a. Seleccione Utilizar la cuenta del sistema local, que no necesita una contrasea para
conectarse a SQL Server en el mismo equipo y, a continuacin, haga clic en Siguiente.

b. Seleccione Usar una cuenta de usuario de dominio, escriba el Nombre de usuario,


la Contrasea y el nombre de Dominio, y haga clic en Siguiente.

Nota:

La casilla de verificacin Iniciar los servicios cuando finalice la instalacin est activada de forma
predeterminada para SQL Server Express. Esta opcin inicia automticamente el servicio de SQL Server
iniciar el sistema operativo.

10. En la pgina Modo de autenticacin, especifique el modo de seguridad que utiliza para
conectarse a la instancia de SQL Server. Si selecciona Autenticacin de Windows, el programa de
instalacin crear una cuenta sa que estar deshabilitada de manera predeterminada. Para activar
la cuenta sa despus de finalizar la instalacin, vea los temas Cmo cambiar el modo de
autenticacin del servidor y ALTER LOGIN (Transact-SQL) en los Libros en pantalla de SQL Server
2005. Si selecciona Autenticacin de modo mixto, debe definir contraseas seguras para todos los
inicios de sesin de SQL Server. Escriba y confirme una contrasea de inicio de sesin de sa segura.
Haga clic en Siguiente.

Importante:

Por motivos de seguridad, SQL Server Express no inicia automticamente el servicio Explorador de SQL
Server. Si sus aplicaciones tienen que utilizar este servicio, debe iniciarlo manualmente o cambiar la opcin
de inicio. Para obtener ms informacin, vea Servicio Explorador SQL Server Cmo iniciar y detener el
servicio Explorador de SQL Server, en los Libros en pantalla de SQL Server 2005.

11. En la pgina Configuracin de intercalacin, cambie el Designador de intercalacin y


orden predeterminado nicamente si necesita que coincida con la configuracin de intercalacin
de otra instancia de SQL Server o en otro equipo. Seleccione Intercalaciones de SQL para hacer
coincidir la configuracin del criterio de ordenacin con versiones anteriores de SQL Server. Haga
clic en Siguiente. Esta pgina no aparece si selecciona la casilla Ocultar opciones de
configuracin avanzadas.

Nota:

El cuadro Personalizar para cada cuenta de servicio se ha quitado porque en SQL Server Express, el
servicio siempre debe sealar a SQL Server.

12. En la pgina Instancias de usuario, especifique si desea generar una instancia independiente del
motor de base de datos para usuarios que no sean administradores. De forma predeterminada, la
funcionalidad de instancia de usuario est habilitada. Para desactivar las instancias de usuario,
desactive la casilla de verificacin. Esta pgina no aparece si activa la casilla de
verificacin Ocultar opciones de configuracin avanzadas. Haga clic en Siguiente.
13. En la pgina Configuracin de informes de errores y uso, seleccione si desea activar los
informes de errores y uso para SQL Server y sus componentes. Los informes de errores estn
activados de manera predeterminada. Para desactivar los informes de errores, desactive la casilla
de verificacin. Haga clic en Siguiente.
14. En la pgina Preparado para instalar, haga clic en Instalar para finalizar la instalacin de SQL
Server.
15. En la pgina Progreso de la instalacin, puede supervisar el progreso de la instalacin a medida
que contina el programa de instalacin. Haga clic en Siguiente.
16. En la pgina Finalizacin del Asistente para la instalacin de Microsoft SQL Server, puede
ver el registro resumen de la instalacin haciendo clic en el vnculo que se proporciona en esta
pgina. Para finalizar el Asistente para la instalacin de SQL Server, haga clic en Finalizar.

Adems de utilizar la interfaz grfica de usuario, puede instalar SQL Server Express con los mismos
parmetros de la lnea de comandos que se utilizan para instalar SQL Server 2005. Para obtener ms
informacin acerca de los parmetros de la lnea de comandos, vea "Ejecutar el programa de instalacin
desde el smbolo del sistema" en los Libros en pantalla de SQL Server 2005.
SQL Server Express tambin admite la propiedad DISABLENETWORKPROTOCOLS para habilitar el acceso
de red durante la instalacin. Para obtener ms informacin, vea Cmo habilitar el acceso a la red durante
la instalacin (SQL Server Express).
Conexin de Visual Basic y SQLServer.
Imports System.Data
Imports System.Data.SqlClient

Public Class Consulta


Dim str_conexion As String = "Data Source=LEONARDO_N\SQL_EXPRESS;Initial
Catalog=newWareSoft;Integrated Security=True"

'La cadena de conexion obviamente la tienen que cambiar por la de ustedes.

Dim conexion As New SqlConnection


Dim cmd As SqlCommand

Public Sub New()


End Sub

Public Property srt_conexion() As String


Get
Return Me.str_conexion
End Get
Set(ByVal str As String)
Me.str_conexion = str
End Set
End Property

Public Sub New(ByVal str As String)


Me.str_conexion = str
End Sub

Public Sub consulta_non_query(ByVal consulta As String)

'Este metodo recibe como parametro la consulta completa y sirve para hacer INSERT, UPDATE Y DELETE
conexion.ConnectionString = str_conexion
cmd = New SqlCommand(consulta, conexion)
conexion.Open()
Try
cmd.ExecuteNonQuery()

MsgBox("La operacion se realizo con exito!", MsgBoxStyle.Information, "Operacion exitosa!" )


Catch ex As Exception
MsgBox("Error al operar con la base de datos!", MsgBoxStyle.Critical, "Error!" )
End Try
conexion.Close()
End Sub
Public Function consulta_reader(ByVal consulta As String) As DataTable

'Este metodo recibe como parametro la consulta completa y sirve para hacer SELECT
Dim dt As New DataTable
conexion.ConnectionString = str_conexion
cmd = New SqlCommand(consulta, conexion)
conexion.Open()
Try
dt.Load(cmd.ExecuteReader())

Catch ex As Exception
MsgBox("Error al operar con la base de datos!", MsgBoxStyle.Critical, "Error!" )

End Try
conexion.Close()
Return dt

End Function

Public Sub cargar_lista(ByRef lista As ListBox, ByVal consulta As String, ByVal valueMember As String, ByVal
displayMember As String)
Dim dt As New Data.DataTable
conexion.ConnectionString = str_conexion
cmd = New SqlCommand(consulta, conexion)
conexion.Open()

Try
dt.Load(cmd.ExecuteReader())

lista.DataSource = dt
lista.ValueMember = valueMember
lista.DisplayMember = displayMember
Catch ex As Exception
MsgBox("Error al operar con la base de datos!", MsgBoxStyle.Critical, "Error!" )

End Try
conexion.Close()
End Sub

Public Sub cargar_combo(ByRef combo As ComboBox, ByVal consulta As String, ByVal valueMember As String,
ByVal displayMember As String)
Dim dt As New DataTable
conexion.ConnectionString = str_conexion
cmd = New SqlCommand(consulta, conexion)
conexion.Open()

Try
dt.Load(cmd.ExecuteReader())

combo.DataSource = dt
combo.ValueMember = valueMember
combo.DisplayMember = displayMember
Catch ex As Exception
MsgBox("Error al operar con la base de datos!", MsgBoxStyle.Critical, "Error!" )

End Try
conexion.Close()
End Sub

Public Function verificar_existencia(ByVal consulta As String) As Boolean

'Devuelve true si existe, entonces no grabamos, o devuelve false si no existe entoinces debemos grabar.
Dim dt As New DataTable
conexion.ConnectionString = str_conexion
cmd = New SqlCommand(consulta, conexion)
conexion.Open()
Try
dt.Load(cmd.ExecuteReader())

Catch ex As Exception
MsgBox("Error al operar con la base de datos!", MsgBoxStyle.Critical, "Error!" )

End Try

conexion.Close()

If dt.Rows.Count > 0 Then


Return True
Else
Return False
End If
End Function

End Class

Cmo generar un archivo PDF en SQL Server?.


En este artculo, la idea es obtener datos desde SQL Server, generar un XML con los mismos para luego
escribir un archivo PDF y presentarlo.

Para la generacin de PDF, utilizaremos una librera Open Source llamada iTextSharp que pueden obtener
desde:

http://itextsharp.sourceforge.net

Una vez que hayamos bajado el fuente o el instalador de la librera, en nuestra aplicacin tenemos que
hacer referencia al proyecto o, si lo instalamos ya compilado, a la dll que se ha incorporado en el GAC.

El cdigo que presento a continuacin es una aplicacin de consola en C#.


Para comenzar importaremos los namespaces que necesitamos para trabajar.

using System;
using System.IO;
using System.Xml;
using System.Reflection;
using System.Data;
using System.Data.SqlClient;

Los nicos que no hemos utilizado nunca son los de la librera que acabamos de referenciar

using iTextSharp.text;
using iTextSharp.text.pdf;
using iTextSharp.text.xml;

Este ltimo nos permite generar el PDF directamente desde un archivo xml, pero nosotros lo vamos a
hacer en el aire.

namespace PDFApp
{

Vamos a definir y una clase con un mtodo esttico que traiga los datos desde SQLServer y los devuelva
a nuestra aplicacin como un documento DOM XML para que podamos generar nuestro archivo de
resultado.

Nuestro mtodo en cuestin esta sobrecargado por si necesitamos trabajar con transacciones (ya que
estamos en el baile, bailemos).

public class Query


{
public static XmlDocument ExecuteQuery(SqlCommand cmd, ref SqlTransaction trans)
{
if( cmd == null )
throw new ArgumentNullException("cmd", "El comando no puede ser null.");
if( trans == null )
throw new ArgumentNullException("trans", "La transaccion no puede ser null.");

XmlNode xmlrow = null;


XmlReader xmlreader = null;
XmlDocument xmldoc = null;
xmldoc = new XmlDocument();
xmldoc.LoadXml("<ROOT/>");
xmlreader = cmd.ExecuteXmlReader();
xmlrow = xmldoc.ReadNode(xmlreader);
while ( xmlrow != null )
{
xmldoc.DocumentElement.AppendChild(xmlrow);
xmlrow = xmldoc.ReadNode(xmlreader);
}
xmlreader.Close();
return xmldoc;
}
public static XmlDocument ExecuteQuery(SqlCommand cmd, SqlConnection conn)
{
XmlDocument xmldoc = null;
SqlTransaction trans = null;
if ( conn != null )
{
if ( conn.State != ConnectionState.Open )
{
conn.Open();
}
cmd.Connection = conn;
}
else
{
throw new ArgumentNullException("cmd", "El comando no puede ser null.");
}
trans = cmd.Connection.BeginTransaction();
xmldoc = new XmlDocument();
xmldoc.LoadXml("<ROOT/>");
try
{
cmd.Transaction = trans;
xmldoc = ExecuteQuery(cmd, ref trans);
trans.Commit();
}
catch (Exception ex)
{
trans.Rollback();
throw ex;
}
return xmldoc;
}
}

Aqu empieza lo bueno, vamos a definir nuestra clase con el entry point de la aplicacin y generamos el
PDF con los resultados.

class Consola
{
[STAThread]
static void main(string [] args)
{

A continuacin, creamos un objeto document con el tamao de la pagina y sus mrgenes, expresados en
floats

// *******************************************************
// Generacin del documento, aplicando los margenes
// *******************************************************
Document document = new Document(PageSize.A4, 90f, 50f, 90f, 60f);
try
{

Pero para generar el PDF vamos a necesitar los datos.


Para ello vamos a llamar al mtodo ExecuteQuery de la clase que definimos antes, la cual nos va a
devolver el XML, pasandole los datos que necesite para obtener los datos desde el servidor de base de
datos.

XmlDocument Doc = new XmlDocument();


SqlConnection cnx = new SqlConnection("Integrated Security=SSPI;Persist
Security Info=False;
Initial Catalog=BASEDEDATOS;Data Source=SERVIDORSQL");
SqlCommand cmd = new sqlcommand("select * from personas for xml raw");

Hay que notar que es muy importante que la consulta desde el motor devuelva XML, para eso inclu en el
SQL "FOR XML RAW" para que nuestro amigo SQL Server nos regale los resultados como queremos, asi la
clase anterior entiende de que estamos hablando.
cmd.Connection = cnx;
Doc = Query.ExecuteQuery(cmd, cnx);

Bien, ya tenemos el XML en el objeto Doc.

Ahora solo tenemos que jugar con los datos para obtener el archivo, pero antes, vamos a decirle a la
librera como son algunas de las propiedades que queremos, tales como donde va a escribir el archivo, los
tipos de letra, etc, etc.

// *******************************************************
// Configuracin del documento PDF
// *******************************************************
string FullPathOut = "c:\\SalidaPDF.pdf";
PdfWriter.getInstance(document, new filestream(fullpathout, filemode.create));
// *******************************************************
// Fonts y colores
// *******************************************************
Font font_celdas = FontFactory.getFont(FontFactory.HELVETICA, 8, Font.NORMAL);
Font font_titulo_tabla = FontFactory.getFont(FontFactory.HELVETICA, 9,
Font.BOLD,
new Color(255,255,255));
Color color_negro = new color(0, 0, 0);

Bueno, vamos a ver como mostramos los datos.


Primero tenemos que abrir el documento.

document.Open();

Ahora vamos a generar una tabla dinmica con algunos de los datos que vamos a obtener.
Yo utilice para el ejemplo, las columnas Nombre, Apellido y Telfono de la tabla de la base de datos.

// *******************************************************
// Tabla
// *******************************************************
Table table = new Table(3);
table.BorderWidth = 0;
table.BorderColor = color_negro;
table.Padding = 1;
table.Spacing = 1;
Cell titulo = new cell(new Phrase("Datos de la tabla", font_titulo_tabla));
titulo.Header = true ;
titulo.BackgroundColor = color_negro;
titulo.Colspan = 3;
table.addCell(titulo);
table.addCell(new Phrase("Nombre", font_celdas));
table.addCell(new Phrase("Num. Documento", font_celdas));
table.addCell(new Phrase("Telfono", font_celdas));
table.endHeaders();

Como pueden ver, las propiedades para la tabla y para las celdas son muy parecidos a los atributos que
definimos en HTML asi que nos vamos a dar cuenta en seguida si necesitamos agregar alguna otra
propiedad que querramos.

Ahora vamos a agregar todo lo que nos viene en nuestro XML.

foreach(xmlelement elem in Doc.SelectNodes("/ROOT/row"))


{
table.addCell(new Phrase(Elem.GetAttribute("Usu_Apellido"), font_celdas));
table.addCell(new Phrase(Elem.GetAttribute("Usu_NroDocumento"),
font_celdas));
table.addCell(new Phrase(Elem.GetAttribute("Usu_Telefono"), font_celdas));
}

Ya est, ahora solo agreguemos todo esto que generamos a nuestro documento, y.... voala!

document.Add(table);
}

Por las dudas.....

catch (XmlException xex)


{
Console.Error.WriteLine(xex.Message);
}
catch (DocumentException de)
{
Console.Error.WriteLine(de.Message);
}
catch (IOException ioe)
{
Console.Error.WriteLine(ioe.Message);
}

Finalmente cerramos todo, no es cuestion de dejar las cosas asi porque si...
finally
{
document.Close();
}
}
}
}

S-ar putea să vă placă și