Vous êtes sur la page 1sur 35

UNIVERSIDAD DISTRITAL FRANCISCO JOS DE CALDAS PROGRAMACIN III Taller: Conexin a una base de datos de Acces.

Prepar: Profesor: Andrs Acua Cano, Ing, Msc.

Tabla de contenido
TABLA DE CONTENIDO..........................................................................................1 INFORMACIN GENERAL SOBRE EL ACCESO A DATOS EN ASP.NET...........................5 CONTROLES DE ORIGEN DE DATOS........................................................................6 CONTROLES ENLAZADOS A DATOS.........................................................................6 CREAR UNA BASE DE DATOS EN ACCES CON LAS TABLAS SIGUIENTES:....................8 RECUPERAR Y MOSTRAR REGISTROS DE UNA BASE DE DATOS DE ACCESS MEDIANTE ASP.NET, ADO.NET Y VISUAL C# .NET....................................................................8 CREAR UNA BASE DE DATOS AL MENOS CON UNA TABLA.................................................................8 CREAR UNA PGINA ASPX .................................................................................................................... 8 ADICIN, MODIFICACIN, INSERCIN Y BUSQUEDA DE REGISTROS EN UNA BASE DE DATOS...............................................................................................................10 CONECCIN A BASE DE DATOS UTILIZANDO SQL SERVER VERSION 2005................15 AGREGAR UN NUEVO REGISTRO...........................................................................15 CREAR LA CONEXIN A LA BASE DE DATOS..........................................................15 ........................................................................................................................15 AGREGAR UN NUEVO CLIENTE..........................................................................................15 CDIGO PARA AGREGAR UN CLIENTE NUEVO............................................................................16 PARA CREAR UN SITIO WEB DEL SISTEMA DE ARCHIVOS....................................................................................18 PARA AGREGAR Y CONFIGURAR UN CONTROL GRIDVIEW QUE PERMITA MOSTRAR DATOS................................................19 PARA PROBAR LA PGINA...................................................................................................................... 23 PARA AGREGAR ORDENACIN Y PAGINACIN.................................................................................................24 PARA AGREGAR EL CUADRO DE TEXTO QUE PERMITE ESPECIFICAR UNA CIUDAD...........................................................25 PARA MODIFICAR LA CONSULTA CON UN FILTRO PARAMETRIZADO..........................................................................25 PARA PROBAR EL FILTRADO.................................................................................................................... 26 PARA CREAR UN SITIO WEB DE SISTEMA DE ARCHIVOS.....................................................................................28 PARA ESTABLECER LOS PERMISOS DE LA CARPETA APP_DATA.............................................................................29

PARA PARA

AGREGAR UN CONTROL PROBAR LA

ACCESSDATASOURCE A LA PGINA.........................................................................30 PGINA...................................................................................................................... 31

EXPORTACIN DE DATOS A UN ARCHIVO XML.......................................................33

Una aplicacin web completa debe incluir una base de datos en la cual se almacenaran los datos relevantes del negocio objeto de la aplicacin as como la informacin de los usuarios que pueden acceder y que tienen permisos especiales segn su tipo.

Conceptos bsicos de Base de Datos


Casi toda la mayora de manejadores de base de datos creados hasta ahora estn orientados a la gestin de base de datos relacionales; sobre las cuales podramos decir que son aquellas que en las cuales los datos se organizan en registros o filas que conforman tablas las cuales estn relacionadas mediante algn campo especfico. Esto permite tener muchas restricciones por ejemplo que no se pueda eliminar de una tabla de clientes un cliente en particular hasta tanto en una tabla de pedidos tenga asociado uno.

Tablas
Un objeto bidimensional, consistente en filas y columnas, utilizado para almacenar datos en una base de datos relacional. Cada tabla almacena informacin acerca de uno de los tipos de objetos modelados por la base de datos. Por ejemplo, una base de datos de educacin tendra una tabla de maestros, una segunda tabla de estudiantes, y una tercera tabla de clases. Las columnas de una tabla representan un atributo del objeto modelado (por ejemplo, nombre, apellido y direccin). Cada fila representa una ocurrencia en el objeto modelado. Por ejemplo, una fila en la tabla Horario registrara la informacin acerca de la clase Algebra 1 llevada a cabo a las 9:00 A.M. y otra registrara la informacin acerca de un Horario de Programacin III impartida a las 10:00 A.M.

Vistas
Un objeto de base de datos que puede ser referenciado de la misma manera que una tabla en declaraciones SQL. Las vistas son definidas utilizando la declaracin SELECT y son anlogas a un objeto que contiene el grupo de resultados de esta declaracin.

ndices
En una base de datos relacional, un objeto de base de datos que brinda acceso rpido a datos en las filas de una tabla, basado en valores claves. Los ndices tambin hacen cumplir la propiedad de las filas de una tabla de ser nicas. SQL Server soporta ndices clustered y nonclustered. La clave principal de una tabla se indexa automticamente. En una bsqueda de texto completo, un ndice de texto completo almacena informacin acerca de palabras significativas y su ubicacin en una columna en particular.

Restricciones
Una propiedad asignada a la columna de una tabla que previene que ciertos tipos de valores de datos invlidos sean ubicados en la columna. Por ejemplo, una restriccin UNIQUE o PRIMARY KEY evita que inserte un valor que es un duplicado de un valor existente, una restriccin CHECK previene que inserte un valor que no equipara una condicin de bsqueda, y una restriccin NOT NULL previene que inserte un valor NULL.

Motor de Base de Datos


El Motor de Base de Datos es el programa que maneja los archivos de la base de datos, el acceso a las Tablas (y relaciones), puede permitir tener seguridad, o bloquear una fila que est siendo modificada, para que nadie ms la modifique, entre otras cosas. A su vez todos los Motores tienen un Cliente, este programa DEBE estar en la servidor o PC que intentar acceder a los datos de mis tablas (excepto que lo estn accediendo a travs de una pgina Web donde el cliente deber estar instalado en el Server donde est la pgina) Existen cientos de Motores, algunos que permiten que los usuarios acceden fsicamente al archivo donde est guardada la informacin (como por ejemplo el Microsoft Access), otros que no permiten que los archivos estn disponibles (como Microsoft SQL Server, Oracle, DB2, etc) y un tercero que si bien no es un motor en si mismo como es una prctica habitual, lo mencionaremos que es el uso de Archivos de texto (que pueden o no estar en formato XML) Por supuesto cada motor brinda diversa cantidad de servicios y uno puede ser ms convenientes que otro y en cada caso se debe evaluar, la relacin Costo Beneficio para elegir uno.
El lenguaje

Ahora que ya sabemos aunque sea un poco de Base de datos, ustedes se estarn preguntando como hacemos para leer los datos de nuestra Base. Bueno resulta que existe un lenguaje conocido como Transac (o SQL Transac) que "en general" es comn para todos los motores de bases de datos.

Este lenguaje cuenta principalmente con 4 comando fundamentales. SELECT INSERT UPDATE DELETE Sintaxis de las instrucciones para el acceso a base de datos: A continuacin se muestra la sintaxis general de las instrucciones para acceder a una base de datos; aunque cada motor manejador de base de datos pueda que cambie un poco.
SELECT Este comando se utiliza para leer datos de una o ms tablas. Sintaxis

SELECT [campo1], [campo2], FROM [tabla1] WHERE [campo1]='valor buscado'

Por ejemplo si quisiera ver la fila 'Nombre' de mi Tabla 'Clientes' escribira:


SELECT nombre FROM Clientes

Y si quisiera ver toda la informacin de mi clientes de Apellido: 'Perez' escribira:


SELECT * FROM Clientes WHERE Apellido='Perez'

Noten que para ver todos los campos us un asterisco (*) y que el valor de texto que busco est entre comillas simples (') para definirlo como una cadena de caracteres INSERT Insertar una fila en una tabla Sintaxis:
INSERT [Tabla] ( [Campo1], [Campo2], ) VALUES ('Valor1','Valor2',)

Ejemplo: Insertar un Nuevo Cliente


INSERT Clientes (nombre, apellido) VALUES ('Facundo', 'Dhers')

UPDATE (actualizar) Actualiza la informacin de un campo en una o muchas filas Sintaxis


UPDATE [Tabla] SET [campo1]='Nuevo Valor' WHERE [Campo1]='Viejo Valor'

Ejemplo si quisiera actualizar en mi tabla Productos, el campo Precio a '$1,5' de la 'Bebida de Cola'
UPDATE productos SET Precio=1,5 WHERE NombreProducto='Bebida de Cola'

DELETE (Borrar)

Elimina una o muchas filas Sintaxis


DELETE [tabla1] WHERE campo1='Valor'

Ejemplo quiero sacar todas las bebidas Cola de mi tabla Productos


DELETE Productos WHERE NombreProducto='Bebida de Cola'

Tengan en cuenta que la expresin WHERE acepta los operadores OR y AND que dan mucha precisin a las consultas (o Queries) Por supuesto hay mucho ms sobre Transac y como usarlo (mezclas y usos combinados) pero solo quiero mostrarles aquellos que van a usar directamente con ADO.NET (como para empezar) Tambin escucharn hablar de Procedimientos Almacenados (o Stored Procedures) estos son un conjunto de comandos Transac que estn guardados en el Motor de Base de datos y que al ejecutarlos hacen algo (como por ejemplo eliminar un registro de una tabla, darlo de alta en otra y devolver el nuevo identificador nico). Estos SP pueden recibir o devolver parmetros (valores que le indiquen que es lo que tiene que hacer o que indiquen que es lo que hizo)

Informacin general sobre el acceso a datos en ASP.NET


ADO.NET explicado de una forma muy sencilla, es un conjunto de Assemblies que forman parte del .Net Framework que nos permiten comunicarnos con los motores de Bases de Datos, leer datos, actualizarlos y dems, de una manera muy rpida y extremadamente sencilla. Para esto ADO.NET tiene varios "Clientes" de Bases de Datos y todos se encuentran en el espacio de nombres: System.Data System.Data.SqlClient (para conectarse a los Motores MsSQL Server 7.0 o superior) System.Data.OleDb (para todo lo que no se MsSQL Server 7.0 o superior) System.Data.Oracle (que est disponible a partir del .NET Framework 2.0 y es para conectarse a motores Oracle)

Las aplicaciones Web obtienen acceso normalmente a los orgenes de datos para el almacenamiento y la recuperacin de datos dinmicos. Se puede escribir cdigo para el acceso a los datos utilizando clases del espacio de nombres System.Data (normalmente denominado ADO.NET) y del espacio de nombres System.Xml. Este enfoque era normal en versiones anteriores de ASP.NET. Sin embargo, ASP.NET tambin permite realizar el enlace de datos mediante declaracin. Este proceso no requiere la existencia de cdigo para los escenarios de datos ms comunes, entre los que se incluyen:

Seleccionar y mostrar datos. Ordenar, paginar y almacenar datos en memoria cach.

Actualizar, insertar y eliminar datos. Filtrar datos utilizando parmetros en tiempo de ejecucin. Crear escenarios de detalles maestros utilizando parmetros.

ASP.NET incluye dos tipos de controles de servidor que participan en el modelo de enlace de datos declarativo: controles de origen de datos y controles enlazados a datos. Estos controles administran las tareas subyacentes requeridas por el modelo Web sin estado para mostrar y actualizar datos en pginas Web ASP.NET. Por tanto, no es estrictamente necesario conocer los detalles del ciclo de vida de la solicitud de pgina si slo se va a realizar el enlace de datos.

Controles de origen de datos


Los controles de origen de datos son controles ASP.NET que administran las tareas de conexin a un origen de datos y de lectura y escritura de datos. Los controles de origen de datos no representan ninguna interfaz de usuario, sino que actan como intermediarios entre un almacn de datos en particular (como una base de datos, un objeto comercial o un archivo XML) y los dems controles de la pgina Web ASP.NET. Los controles de origen de datos habilitan un amplio conjunto de funciones para recuperar y modificar datos, entre las que se incluyen la consulta, la ordenacin, la paginacin, el filtrado, la actualizacin, la eliminacin y la insercin. ASP.NET incluye los controles de origen de datos siguientes:

Control de origen de datos Descripcin ObjectDataSource Permite trabajar con un objeto comercial u otra clase y crear aplicaciones Web basadas en objetos de nivel medio para administrar los datos. Para obtener ms informacin, vea ObjectDataSource (Control de servidor Web). Permite trabajar con proveedores de datos administrados de ADO.NET, que proporcionan acceso a bases de datos de Microsoft SQL Server, OLE DB, ODBC u Oracle. Para obtener ms informacin, vea SqlDataSource (Control de servidor Web). Permite trabajar con una base de datos de Microsoft Access. Para obtener ms informacin, vea AccessDataSource (Control de servidor Web). Permite trabajar con un archivo XML, que es especialmente til para controles de servidor ASP.NET jerrquicos tales como el control TreeView o Menu. Para obtener ms informacin, vea XmlDataSource (Control de servidor Web). Se utiliza con la exploracin del sitio ASP.NET. Para obtener ms informacin, vea Informacin general sobre la exploracin del sitio de ASP.NET.

SqlDataSource

AccessDataSource XmlDataSource

SiteMapDataSource

Los controles de origen de datos tambin se pueden ampliar para admitir proveedores de almacenamiento y acceso a datos adicionales. Para obtener ms informacin sobre controles de origen de datos, vea Informacin general sobre los controles de origen de datos.

Controles enlazados a datos


Los controles enlazados a datos representan datos como marcado al explorador que realiz la solicitud. Un control enlazado a datos se puede enlazar a un control de origen de datos y buscar datos automticamente en el momento apropiado del ciclo de vida de la solicitud de pgina. Los controles enlazados a datos pueden aprovechar las ventajas de las funciones proporcionadas por un control de origen de datos entre las que se incluyen la ordenacin, la paginacin, el

almacenamiento en cach, el filtrado, la actualizacin, la eliminacin y la insercin. Un control enlazado a datos establece una conexin con un control de origen de datos a travs de su propiedad DataSourceID. ASP.NET incluye los controles enlazados a datos que se describen en la tabla siguiente. Controles de lista Representa los datos en una variedad de formato de listas. Entre los controles de lista se incluyen los controles BulletedList, CheckBoxList, DropDownList, ListBox y RadioButtonList. AdRotator Representa los anuncios de una pgina como una imagen en la que los usuarios pueden hacer clic para ir a una direccin URL asociada al anuncio. Para obtener ms informacin, vea AdRotator (Control de servidor Web). DataList Representa los datos en una tabla. Cada elemento se representa utilizando una plantilla de elemento definida por el usuario. Para obtener ms informacin, vea DataList (Control de servidor Web). DetailsView Muestra un registro cada vez en disposicin de tabla y permite editar, eliminar e insertar registros. Tambin se puede realizar la paginacin a travs de varios registros. Para obtener ms informacin, vea DetailsView (Control de servidor Web). FormView Es similar al control DetailsView, pero permite definir una disposicin de formato libre para cada registro. El control FormView es como un control DataList para un registro nico. Para obtener ms informacin, vea FormView (Control de servidor Web). GridView Muestra los datos en una tabla e incluye compatibilidad para editar, actualizar, ordenar y paginar datos sin necesidad de cdigo.

Nota El control GridView reemplaza el control DataGrid ASP.NET disponible en versiones anteriores de ASP.NET. Para obtener ms informacin, vea GridView (Control de servidor Web). Menu

Representa los datos en un men dinmico jerrquico que puede incluir submens. Para obtener ms informacin, vea Menu (Control de servidor Web). Repeater Representa los datos en una lista. Cada elemento se representa utilizando una plantilla de elemento definida por el usuario. Para obtener ms informacin, vea Repeater (Control de servidor Web). TreeView Representa los datos en un rbol jerrquico de nodos que se pueden expandir. Para obtener ms informacin, vea TreeView (Control de servidor Web).

Crear una base de datos en Acces con las tablas siguientes:


Pegarla en una carpeta llamada App_Data y ubicada en la carpeta de la aplicacin Crear un nuevo proyecto ASP.NET. Agregar una nueva pgina aspx llamada cliente.aspx.

Recuperar y mostrar registros de una base de datos de Access mediante ASP.NET, ADO.NET y Visual C# .NET
Objetivo es recuperar datos de una base de datos de Microsoft Access y presentar datos al usuario mediante programacin. Se utilizan las clases OleDbConnection, OleDbCommand y OleDbDataReader, que forman parte de ADO.NET y Microsoft .NET Framework.

Crear una base de datos al menos con una tabla.


Para este caso creamos una base de datos de nombre bdaicem.mbd y con una tabla llamada clientes con: los campos: id, nombres, apellidos, login y password.

Crear una pgina ASPX


En el cdigo de ejemplo de esta seccin se crea una cadena que contendr los datos recuperados de la base de datos junto con el cdigo adicional del Lenguaje de marcado de hipertexto (HTML) para producir una representacin muy sencilla del resultado. Tenga en cuenta que ASP.NET ofrece diversos controles que puede utilizar para conseguir un procesamiento sencillo y mejorado de los datos.

Adems, el cdigo que crea la tabla HTML incluye alguna concatenacin de cadenas. Aunque puede utilizar la clase StringBuilder para conseguir este resultado con mayor eficiencia, el cdigo de este ejemplo no utiliza StringBuilder por reducir el nmero de componentes de .NET Framework que introduce el cdigo. Para obtener ms informacin acerca de la clase StringBuilder, consulte la siguiente documentacin del Kit de desarrollo de software (SDK) de .NET Framework: http://msdn.microsoft.com/library/default.asp?url=/library/enus/cpref/html/frlrfSystemTextStringBuilderClassTopic.asp (http://msdn.microsoft.com/library/default.asp?url=/library/enus/cpref/html/frlrfSystemTextStringBuilderClassTopic.asp) El cdigo necesario para visualizar la informacin de la tabla es el siguiente:
<% @Page Language = C# %> <%@Import Namespace="System.Data"%> <%@Import Namespace="System.Data.OleDb"%> <Script language="C#" runat="server"> void Page_Load(object sender, System.EventArgs e) { //Utilizar una variable para almacenar la cadena de conexin ConnectionString. String myConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + Server.MapPath(@"App_Data\bdaicem.mdb") + ";"; //Data Source=C:\\File Databases\\bdaicem.mdb"; //Crear un objeto OleDbConnection //y pasar la ConnectionString al constructor. OleDbConnection myConnection = new OleDbConnection(myConnectionString); //Abrir la conexin. myConnection.Open(); //Utilizar una variable para almacenar la instruccin SQL. string mySelect = "SELECT id, nombres, apellidos FROM clientes"; //Crear un objeto OleDbCommand. //Observe que pasamos la instruccin SQL y el objeto OleDbConnection. OleDbCommand myCommand = new OleDbCommand(mySelect,myConnection); //Enviar el CommandText a la conexin y crear un OleDbDataReader. //Nota: El OleDbDataReader es de slo avance. OleDbDataReader myReader = myCommand.ExecuteReader(); //Utilizar una variable para almacenar la informacin devuelta OleDbDataReader //y el cdigo de tabla HTML que utilizar para presentar el resultado. string TableBuilder = "<table border=1 cellspacing=1>"; //Crear una fila de tabla inicial que contiene los nombres de columna. TableBuilder += "<tr><td><B>Id. de cliente</B></td>" + "<td><B>Nombres </B></td>" + "<td><B>Apellidos</B></td></tr>"; //Recorrer los registros while(myReader.Read()) { //Concatenar //crear cada TableBuilder de uno en uno. los valores del DataReader para fila de la tabla. += "<tr><td>" + myReader["id"] + por el

"</td><td>" + myReader["nombres"] + "</td><td>" + myReader["apellidos"] + "</td></tr>";

TableBuilder += "</table>"; //Escribir la cadena final. Response.Write(TableBuilder); //Cerrar la conexin y el DataReader. myConnection.Close(); myReader.Close(); } </Script> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>Recuperacin y visualizacin de datos</title> </head> <body> <form id="form1" runat="server"> <div> <h1>Datos recuperados:</h1> </div> </form> </body> </html>

El anterior cdigo se encarga de accesar y listar en una tabla y en una pgina el contenido de una tabla de una base de datos. Esta forma presenta los siguientes inconvenientes: la lgica de programacin y la presentacin se encuentran en la misma pgina y adems no permite la adicin, modificacin e insercin de registros. La solucin es entonces la siguiente:

ADICIN, MODIFICACIN, INSERCIN Y BUSQUEDA DE REGISTROS EN UNA BASE DE DATOS


Esta actividad presupone que se haya construido una base de datos en Acces con al menos una tabla ( en el siguiente cdigo la base de datos es bdaicem y la tabla clientes). El archivo de base de datos debe ser colocado en una carpeta App_Data en la carpeta de la aplicacin que muy seguramente estar en el wwwroot. Una cosa importante es que ste archivo debe tener permisos para acceso total del usuario que esta intentando abrir la aplicacin. Para hacer esto : hacer clik derecho sobre el archivo, seleccionar propiedades, luego seguridad, editar y adicionar los permisos. El siguiente cdigo comentado permite las consultas mencionadas:
using using using using using System; System.Data; System.Data.OleDb; System.Configuration; System.Collections;

using using using using using using

System.Web; System.Web.Security; System.Web.UI; System.Web.UI.WebControls; System.Web.UI.WebControls.WebParts; System.Web.UI.HtmlControls;

public partial class clientes : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void btnInsertar_Click(object sender, EventArgs e) { //Utilizar una variable para almacenar la cadena de conexin ConnectionString. String myConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + Server.MapPath(@"App_Data\bdaicem.mdb") + ";"; //Crear un objeto OleDbConnection //y pasar la ConnectionString al constructor. OleDbConnection myConnection = new OleDbConnection(myConnectionString); //Abrir la conexin. myConnection.Open(); //Utilizar una variable para almacenar la instruccin SQL. string miConsulta = "INSERT INTO clientes (id,nombres, apellidos, login,clave,empresa,cargo,telefono,fax,email,direccion)";//,empresa,cargo,telefono,fax, email,direccion)"; miConsulta = miConsulta + " VALUES (" + this.txtId.Text + ",'" + this.txtNombres.Text + "','" + this.txtApellidos.Text + "','" + this.txtLogin.Text + "','" + this.txtClave.Text + "','" + this.txtEmpresa.Text + "','" + this.txtCargo.Text + "','" + this.txtTelefono.Text + "','" + this.txtFax.Text + "','" + this.txtEmail.Text + "','" + this.txtDireccion.Text + "')"; //+ "','" + this.txtEmpresa.Text + "','" + this.txtCargo.Text + "','" + this.txtTelefono.Text + "','" + this.txtFax.Text + "','" + this.txtEmail.Text + "','" + this.txtDireccion.Text + "')"; //Crear un objeto OleDbCommand. //Observe que pasamos la instruccin SQL y el objeto OleDbConnection. OleDbCommand myCommand = new OleDbCommand(miConsulta, myConnection); try {

} catch(Exception er) {

myCommand.ExecuteNonQuery(); this.lblMsg.Text = "Se inserto correctamente";

this.lblMsg.Text = "ERROR AL INSERTAR CLIENTE "+ er; } myConnection.Close(); } protected void btnModificar_Click(object sender, EventArgs e) { //Utilizar una variable para almacenar la cadena de conexin ConnectionString. String myConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + Server.MapPath(@"App_Data\bdaicem.mdb") + ";";

//Crear un objeto OleDbConnection //y pasar la ConnectionString al constructor. OleDbConnection myConnection = new OleDbConnection(myConnectionString); //Abrir la conexin. myConnection.Open(); //Utilizar una variable para almacenar la instruccin SQL. String miConsulta = "UPDATE clientes SET nombres ='" + this.txtNombres.Text + "', apellidos = '" + this.txtApellidos.Text + "', login = '" + this.txtLogin.Text + "', clave = '" + this.txtClave.Text + "', empresa = '" + this.txtEmpresa.Text + "', cargo = '" + this.txtCargo.Text + "', telefono ='" + this.txtTelefono.Text + "', fax = '" + this.txtFax.Text + "', email ='" + this.txtEmail.Text + "', direccion = '" + this.txtDireccion.Text + "' WHERE id = " + this.txtId.Text; //Crear un objeto OleDbCommand. //Observe que pasamos la instruccin SQL y el objeto OleDbConnection. OleDbCommand myCommand = new OleDbCommand(miConsulta, myConnection); try { myCommand.ExecuteNonQuery(); this.lblMsg.Text = "Modificacin con xito"; } catch(Exception er) { this.lblMsg.Text = "ERROR AL MODIFICAR "+er; } myConnection.Close(); } protected void btnBuscar_Click(object sender, EventArgs e) { //Utilizar una variable para almacenar la cadena de conexin ConnectionString. String myConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + Server.MapPath(@"App_Data\bdaicem.mdb") + ";"; //Crear un objeto OleDbConnection //y pasar la ConnectionString al constructor. OleDbConnection myConnection = new OleDbConnection(myConnectionString); //Abrir la conexin. myConnection.Open(); //Utilizar una variable para almacenar la instruccin SQL. string mySelect = "SELECT * FROM clientes WHERE id =" + this.txtId.Text; //Crear un objeto OleDbCommand. //Observe que pasamos la instruccin SQL y el objeto OleDbConnection. OleDbCommand myCommand = new OleDbCommand(mySelect, myConnection); //Enviar el CommandText a la conexin y crear un OleDbDataReader. //Nota: El OleDbDataReader es de slo avance. OleDbDataReader myReader = myCommand.ExecuteReader();

//Recorrer los registros de uno en uno. if (myReader.Read()) { this.lblMsg.Text = "Cliente encontrado"; this.txtNombres.Text = myReader["nombres"].ToString(); this.txtApellidos.Text = myReader["apellidos"].ToString(); this.txtLogin.Text = myReader["login"].ToString(); this.txtClave.Text = myReader["clave"].ToString(); this.txtEmpresa.Text = myReader["empresa"].ToString(); this.txtCargo.Text = myReader["cargo"].ToString(); this.txtTelefono.Text = myReader["telefono"].ToString(); this.txtFax.Text = myReader["fax"].ToString(); this.txtEmail.Text = myReader["email"].ToString(); this.txtDireccion.Text = myReader["direccion"].ToString(); } else

this.lblMsg.Text = "CLIENTE NO ENCONTRADO";

myConnection.Close(); myReader.Close(); } protected void btnRetirar_Click(object sender, EventArgs e) { //Utilizar una variable para almacenar la cadena de conexin ConnectionString. String myConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + Server.MapPath(@"App_Data\bdaicem.mdb") + ";"; //Crear un objeto OleDbConnection //y pasar la ConnectionString al constructor. OleDbConnection myConnection = new OleDbConnection(myConnectionString); //Abrir la conexin. myConnection.Open(); //Utilizar una variable para almacenar la instruccin SQL. String miConsulta = "DELETE FROM clientes WHERE id = " + this.txtId.Text; //Crear un objeto OleDbCommand. //Observe que pasamos la instruccin SQL y el objeto OleDbConnection. OleDbCommand myCommand = new OleDbCommand(miConsulta, myConnection); try { myCommand.ExecuteNonQuery(); this.lblMsg.Text = "Datos de cliente borrados"; this.txtNombres.Text = ""; this.txtApellidos.Text = ""; this.txtLogin.Text = ""; this.txtClave.Text = ""; this.txtEmpresa.Text = ""; this.txtCargo.Text = ""; this.txtTelefono.Text = ""; this.txtFax.Text = ""; this.txtEmail.Text = ""; this.txtDireccion.Text = ""; } catch(Exception er) {

this.lblMsg.Text = "ERROR AL BORRAR"+er; } myConnection.Close();

} }

Observecese que para accin sobre la base de datos se program en un boton diferente.

CONECCIN A BASE DE DATOS UTILIZANDO SQL SERVER VERSION 2005

Agregar un Nuevo registro


En este ejemplo vamos a capturar la informacin correspondiente a los nombres y apellidos del cliente: Crear un formulario con la etiqueta <form> y dentro de el insertar una tabla con dos campos de texto que tenga la siguiente apariencia:

Nombres

Apellidos

Agregar un botn y en el texto escribe Nuevo cliente.


Ahora damos funcionalidad al botn, de forma que al pulsar en l se cree un nuevo cliente con los datos digitados en los campos de texto. Hacer doble clic en el botn para que se muestre la ventana de cdigo El cdigo se habr mostrado en un fichero aparte con el mismo nombre que la pgina y con la extensin del lenguaje elegido, en este caso es: cliente.aspx.cs

Crear la conexin a la base de datos

Insertar un control llamado SqlDataSource1 que tendr todos los comandos para insertar, eliminar,
actualizar, etc. Agregar al archivo de cdigo la sentencia using System.Data.SqlClient; la cual incorpora la librera

para manejar las consultas de acceso a la base de datos.

Agregar un nuevo Cliente


Primero creamos una consulta para averiguar si existe el cliente con Id igual al que necesitamos agregar. Para esto vamos a crear la consulta SELECT Count(*) FROM clientes WHERE id = @id la cual devuelve 0 en caso de no existir el cliente.
Para ejecutar esa sentencia de SQL se utiliza un objeto SqlConnection y un objeto SqlCommand Para el objeto Connection se necesita una cadena de conexin, y como ya tenemos en el formulario (pagina Web) un objeto SqlDataSource, pues la tomamos de ah.

using (SqlConnection cnn = new SqlConnection(this.SqlDataSource1.ConnectionString)) { SqlCommand cmd = new SqlCommand( "SELECT Count(*) " + "FROM clientes " + "WHERE id = @id", cnn); // Abrimos la conexin cnn.Open(); // Aadimos el valor del parmetro de la consulta cmd.Parameters.AddWithValue("@id", txtId.Text); // Si devuelve algun valor, es que ya existe int i = (int)cmd.ExecuteScalar(); if( i > 0 ) { // Avisamos y salimos this.lblAviso.Text = "El cliente ya existe"; return; } // Al salir del bloque using se cierra la conexin }

El cdigo anterior sirve para comprobar si el cliente ya existe, vers que uso una instruccin Using para controlar la conexin, de esa forma, si nos salimos nos aseguramos de que el objeto se destruye y se cierra la conexin, ya que esa instruccin se encarga de liberar todos los recursos que estuviera usando al llegar al final del bloque. El parmetro @id lo asignamos usando el mtodo AddWithValue que es la forma ms cmoda de crear los parmetros al tiempo que se le asigna el valor que tendr. Al llamar al mtodo ExecuteScalar del comando, le estamos diciendo que devuelva la primera columna de la primera fila, y como resulta que lo que queremos es el nmero de veces que est en la tabla Usuarios esa cuenta de correo, pues si ya est una vez, devolver un 1, si no est devolver un cero. El valor que devuelve esa funcin es de tipo Object, ya que en realidad el tipo devuelto depende de lo que pongamos despus de SELECT, en este caso es un valor entero, que es lo que devuelve la funcin Count(*). Si lo que devuelve es mayor de cero, es que hay algn id como el que se ha escrito, por tanto mostramos el mensaje de error y salimos del mtodo.

Si se contina, es decir, se llega despus del }, es que no existe esa cuenta con id, por tanto debemos agregar los datos.

Cdigo para agregar un cliente nuevo.

Ahora debemos hacer casi lo mismo de antes, pero ejecutando el comando Insert, el cual tambin lo tomaremos del objeto SqlDataSource1. Aunque antes de guardar nada en la base de datos debemos asignar los valores de los parmetros, que si te fijas en el cdigo de la pgina, esos parmetros se llaman igual que los campos, pero empezando con la arroba (@).

Acceso a datos bsico en pginas Web


Ahora veremos como:

Conectarse a una base de datos de Microsoft SQL Server con la herramienta de desarrollo Web Microsoft Visual

Web Developer. Utilizar la caracterstica de arrastrar y colocar para crear elementos de acceso a datos que se puedan utilizar en

la pgina sin cdigo. Utilizar el control SqlDataSource para administrar el acceso a datos y los enlaces. Hacer que se muestren datos con el control GridView. Configurar el control GridView para permitir la ordenacin y la paginacin. Crear una consulta filtrada con la que slo se muestren los registros seleccionados.

Requisitos previos

Para poder completar este tutorial, necesitar lo siguiente:

Obtener acceso a la base de datos Northwind de SQL Server. Si la base de datos Northwind no se encuentra en el mismo equipo que el servidor Web, deber tener un

nombre de usuario y una contrasea para una cuenta de usuario de SQL Server con acceso a la base de datos Northwind. Nota Si necesita informacin sobre cmo iniciar sesin en SQL Server, pngase en contacto con el administrador del servidor.

Microsoft Data Access Components (MDAC) versin 2.7 o posterior.

Si utiliza Microsoft Windows XP o Windows Server 2003, ya dispone de MDAC 2.7. Sin embargo, si utiliza Microsoft Windows 2000, quiz tenga que actualizar la versin de MDAC que ya est instalada en el equipo. Para descargar la actual versin de MDAC, vea el Centro para desarrolladores de acceso a datos y almacenamiento. Crear el sitio Web

Si ya ha creado un sitio Web en Visual Web Developer siguiendo los pasos descritos en Tutorial: Crear una pgina Web bsica en Visual Web Developer, puede utilizar ese sitio Web e ir a la seccin siguiente. De lo contrario, cree un sitio Web y una pgina nuevos siguiendo estos pasos.

Para crear un sitio Web del sistema de archivos


1. Abra Visual Web Developer. En el men Archivo, haga clic en Nuevo Sitio Web.

2. 3. 4.

Aparece el cuadro de dilogo Nuevo sitio Web. En Plantillas instaladas de Visual Studio, haga clic en Sitio Web de ASP.NET. En el cuadro Ubicacin situado en el extremo derecho, escriba el nombre de la carpeta en la que desea

conservar las pginas del sitio Web. Por ejemplo, escriba el nombre de carpeta C:\WebSites.

5. 6.

En la lista Lenguaje, haga clic en el lenguaje de programacin con el que prefiera trabajar. Haga clic en Aceptar.

Visual Web Developer crea la carpeta y una nueva pgina denominada Default.aspx. Agregar un control GridView para mostrar datos

Para que se muestren datos en una pgina Web ASP.NET, necesita lo siguiente:

Una conexin con un origen de datos (como, por ejemplo, una base de datos).

En el procedimiento siguiente crear una conexin a la base de datos Northwind de SQL Server.

Un control de origen de datos en la pgina con el que se ejecuten las consultas y se administren los resultados

de stas. Un control en la pgina para mostrar los datos.

En el procedimiento siguiente se mostrarn los datos en un control GridView. El control GridView obtendr sus datos del control SqlDataSource. Puede agregar estos elementos al sitio Web por separado. Sin embargo, para empezar resulta ms fcil visualizar la presentacin de datos con el control GridView y despus utilizar asistentes para crear la conexin y el control del origen de datos. En el siguiente procedimiento se explica cmo crear los tres elementos que necesita para mostrar datos en la pgina.

Para agregar y configurar un control GridView que permita mostrar datos


1. 2. 3. 4.
datos>. Aparece el cuadro de dilogo Configuracin de origen de datos. En Visual Web Developer, cambie a la vista Diseo. Arrastre un control GridView desde el grupo Datos del Cuadro de herramientas hasta la pgina. Si el men contextual Tareas de GridView no aparece, haga clic con el botn secundario del mouse En el men Tareas de GridView, en la lista Elegir origen de datos, haga clic en <Nuevo origen de

(ratn) en el control GridView y haga clic en Mostrar etiqueta inteligente.

5.

Haga clic en Base de datos.

As especifica que desea obtener datos de una base de datos que admite instrucciones SQL. Esto incluye a SQL Server y a otras bases de datos compatibles con OLE DB. En el cuadro Especificar un id. para el origen de datos aparece un nombre de control de origen de datos predeterminado (SqlDataSource1). Puede dejar ese nombre.

6.

Haga clic en Aceptar.

Aparece el asistente para orgenes de datos, que muestra una pgina en la que puede elegir una conexin.

7. 8.

Haga clic en Nueva conexin. En el cuadro de dilogo Elegir origen de datos, en Origen de datos, haga clic en Microsoft SQL

Server y, a continuacin, haga clic en Continuar. Aparecer el cuadro de dilogo Agregar conexin.

9.

En el cuadro Nombre de servidor, escriba el nombre del servidor SQL Server que desea utilizar.

10.

Por lo que respecta a las credenciales de inicio de sesin, seleccione la opcin que resulte apropiada para

el acceso a la base de datos de SQL Server (seguridad integrada o id. y contrasea especficos) y, si es necesario, especifique un nombre de usuario y una contrasea.

11. 12.

Haga clic en Seleccionar o escribir nombre de base de datos y escriba Northwind. Haga clic en Probar conexin y, cuando tenga la seguridad de que funciona, haga clic en Aceptar.

Aparece el asistente Configurar origen de datos - <NombreOrigenDatos> y se rellena la informacin de la conexin.

13.

Haga clic en Siguiente.

Aparece el asistente, que muestra una pgina que le permite almacenar la cadena de conexin en el archivo de configuracin. Si se almacena la cadena de conexin en el archivo de configuracin, se tienen dos ventajas: a. Es ms seguro que el almacenamiento de la cadena de conexin en la pgina. b. Puede reutilizar la misma cadena de conexin en varias pginas.

14.

Asegrese de que est activada la casilla de verificacin S, guardar esta conexin como y haga clic en

Siguiente. (Puede dejar el nombre predeterminado de la cadena de conexin, NorthwindConnectionString). Aparece el asistente, que muestra una pgina en la que puede especificar los datos que desea obtener de la base de datos.

15. 16.

En Especificar columnas de una tabla o vista, en el cuadro Nombre, haga clic en Customers. Bajo Columnas, active las casillas de verificacin CustomerID, CompanyName y City.

Aparece el asistente, que en un cuadro situado en la parte inferior de la pgina muestra la instruccin SQL que se est creando.

Nota

El asistente le permite especificar criterios de seleccin (una clusula WHERE) y otras opciones de la consulta SQL. Para esta parte del tutorial crear una instruccin simple sin opciones de seleccin ni ordenacin.

17. 18. 19.


o o

Haga clic en Siguiente. Haga clic en Consulta de prueba para asegurarse de que se obtienen los datos que desea. Haga clic en Finalizar.

El asistente se cierra y vuelve a mostrarse la pgina. Al ejecutar el asistente, se han realizado dos tareas: El asistente ha creado y configurado un control SqlDataSource (con el nombre (SqlDataSource1), que incorpora la informacin de conexin y consulta que especific. El asistente ha enlazado el control GridView al objeto SqlDataSource. Por consiguiente, el control

GridView mostrar datos devueltos por el control SqlDataSource. Si ve las propiedades para el control SqlDataSource, podr observar que el asistente ha creado los valores para las propiedades ConnectionString y SelectQuery. Nota

Puede cambiar con facilidad la apariencia del control GridView. En la vista Diseo, haga clic con el botn secundario del mouse (ratn) en el control GridView y, a continuacin, seleccione Mostrar etiqueta inteligente. En el men Tareas de GridView, haga clic en Formato automtico y, a continuacin, aplique un esquema. Probar la pgina

Ahora puede ejecutar la pgina.

Para probar la pgina

1. 2.

Presione CTRL+F5 para ejecutar la pgina. Cierre el explorador.

La pgina aparece en el explorador. El control GridView muestra todas las filas de datos de la tabla Customers. Agregar ordenacin y paginacin

Puede agregar posibilidades de ordenacin y paginacin al control GridView sin escribir cdigo.

Para agregar ordenacin y paginacin


1. 2. 3. 4.
5. En la vista Diseo, haga clic con el botn secundario del mouse (ratn) en el control GridView y, a En el men contextual Tareas de GridView, active la casilla de verificacin Habilitar ordenacin.

continuacin, seleccione Mostrar etiqueta inteligente.

Los encabezados de columna del control GridView cambian a vnculos. En el men contextual Tareas de GridView, active la casilla de verificacin Habilitar paginacin.

Se agrega un pie de pgina al control GridView con vnculos de nmero de pgina. Tambin puede utilizar Propiedades para cambiar el valor de la propiedad PageSize de 10 a un tamao Presione CTRL+F5 para ejecutar la pgina. de pgina menor. Podr hacer clic en un encabezado de columna para ordenar los datos por el contenido de esa columna. Si en el origen de datos hay ms registros de los que permite el tamao de pgina del control GridView, podr utilizar los vnculos de exploracin de pginas situados en la parte superior del control GridView para desplazarse entre las pginas. 6. Cierre el explorador. Agregar filtrado

A menudo desear que en la pgina slo se muestren datos seleccionados. En esta parte del tutorial modificar la consulta para el control SqlDataSource de manera que los usuarios puedan seleccionar registros de clientes de una ciudad determinada. En primer lugar, utilizar un control TextBox para crear un cuadro de texto en el que los usuarios puedan escribir el nombre de una ciudad. A continuacin, cambiar la consulta para incluir un filtro parametrizado (clusula WHERE). Como parte de ese proceso, crear un elemento de parmetro para el control SqlDataSource. El elemento de parmetro establece cmo obtendr el control SqlDataSource el valor para su consulta parametrizada; concretamente, del cuadro de texto. Cuando finalice esta parte del tutorial, la pgina podra tener una apariencia similar a la siguiente en la vista Diseo.

Para agregar el cuadro de texto que permite especificar una ciudad


1.
Desde el grupo Estndar del Cuadro de herramientas, arrastre a la pgina un control TextBox y un

control Button. El control Button slo se utiliza para devolver la pgina al servidor. En este caso no tendr que escribir cdigo.

2. 3. 4.

En Propiedades, para el control TextBox, establezca ID como textCity. Si lo desea, escriba Ciudad o un texto similar delante del cuadro de texto, como ttulo. En Propiedades para el control Button, establezca Text como Enviar.

Ahora puede modificar la consulta para que incluya un filtro.

Para modificar la consulta con un filtro parametrizado


1. 2. 3. 4. 5. 6. 7.
Haga clic con el botn secundario del mouse (ratn) en el control SqlDataSource y, a continuacin, En el men Tareas de SqlDataSource, haga clic en Configurar origen de datos.

seleccione Mostrar etiqueta inteligente.

Aparecer el asistente Configurar origen de datos - <Datasourcename>. Haga clic en Siguiente.

El asistente muestra el comando SQL configurado actualmente para el control SqlDataSource. Haga clic en WHERE.

Aparecer la pgina Agregar clusula WHERE. En la lista Columna, haga clic en Ciudad. En la lista Operador, haga clic en =. En la lista Origen, haga clic en Control.

8.

En Propiedades del parmetro, en la lista Id. de control, haga clic en textCity.

En los cinco pasos anteriores se especifica que con la consulta se obtendr el valor de bsqueda de Ciudad del control TextBox que agreg en el procedimiento anterior.

9. 10. 11. 12.

Haga clic en Agregar.

La clusula WHERE que ha creado aparece en un cuadro en la parte inferior de la pgina. Haga clic en Aceptar para cerrar la pgina Agregar clusula WHERE. En el asistente Configurar origen de datos - <DataSourceName>, haga clic en Siguiente. En la pgina Consulta de prueba, haga clic en Consulta de prueba.

Aparece el asistente, con la pgina Editor de valores del parmetro, en la que se solicita un valor para utilizarlo en la clusula WHERE.

13. 14.

En el cuadro Valor, escriba Londres y, a continuacin, haga clic en Aceptar.

Aparecen los registros de los clientes de Londres. Haga clic en Finalizar para cerrar el asistente.

Ahora puede probar el filtrado.

Para probar el filtrado


1. Presione CTRL+F5 para ejecutar la pgina. En el cuadro de texto, escriba Londres y, a continuacin, haga clic en Enviar.

2. 3.

Aparece una lista de clientes de la ciudad de Londres en el control GridView. Pruebe con otras ciudades, como Buenos Aires y Berln.

Pasos siguientes

El acceso a datos constituye un aspecto importante en muchas aplicaciones Web, y en este tutorial slo se da una ligera idea de lo que se puede hacer con los datos en las pginas Web. Quizs desee probar otras caractersticas relacionadas con el acceso a datos. Por ejemplo, puede hacer lo siguiente:

Trabajar con Microsoft Access en lugar de con SQL Server. (No se puede utilizar dependencia de cach de SQL

con Access). Para obtener informacin detallada, vea Tutorial: Crear una pgina Web para mostrar datos de una base de datos de Access.

Editar e insertar registros.

Para obtener informacin detallada, vea Tutorial: Editar e insertar datos en pginas Web con el control de servidor Web DetailsView.

Trabajar con registros que tienen una relacin de principal-detalle.

Para obtener informacin detallada, vea Tutorial: Crear pginas Web principal-detalle en Visual Studio.

Crear un componente de nivel medio (comercial) que se encargue del acceso a datos y, a continuacin, utilizar

ese recurso como origen de datos en una pgina. Para obtener informacin detallada, vea Tutorial: Enlace de datos a un objeto comercial personalizado. Vea tambin Conceptos Informacin general sobre los controles de origen de datos

Tutorial: Crear una pgina Web para mostrar datos de una base de datos de Access
La herramienta de desarrollo Web Microsoft Visual Web Developer permite crear pginas Web que funcionan con datos de diversos orgenes, entre los que se incluyen bases de datos, archivos XML y objetos comerciales. Este tutorial muestra cmo trabajar con los datos de una base de datos de Microsoft Access (archivo .mdb). Durante este tutorial aprender a hacer lo siguiente:

Configurar los permisos para los archivos .mdb. Establecer conexin con la base de datos que tiene un control AccessDataSource. Mostrar los datos de Access.

Las bases de datos de Access no tienen la misma capacidad ni el mismo potencial de ampliacin que otros tipos de bases de datos, como Microsoft SQL Server. En general, si se crea un sitio Web que va a tener un trfico ligero o un nmero limitado de usuarios, una base de datos de Access ser suficiente. Sin embargo, si se espera que el sitio Web tenga un rendimiento mayor o un alto nmero de usuarios, se debe considerar la posibilidad de usar SQL Server u otra base de datos adecuada para los sitios Web de produccin. Requisitos previos

Para poder completar este tutorial, necesitar lo siguiente:

El archivo Northwind.mdb que contiene la versin para Access de la base de datos Northwind de ejemplo.

Si lo prefiere, puede usar otro archivo .mdb de Access y ajustar los pasos del tutorial para que coincidan con las tablas utilizadas.

Microsoft Data Access Components (MDAC) versin 2.7 o posterior.

Si utiliza Microsoft Windows XP o Windows Server 2003, ya dispone de MDAC 2.7. Sin embargo, si utiliza Microsoft Windows 2000, quizs tenga que actualizar la versin de MDAC que ya est instalada en el equipo. Para descargar la actual versin de MDAC, vea el Centro para desarrolladores de acceso a datos y almacenamientoCentro para desarrolladores de acceso a datos y almacenamiento.

Si lo desea, Servicios de Microsoft Internet Information Server (IIS) instalado localmente en el equipo.

Esto permite comprobar que el sitio Web tiene los derechos de usuario adecuados para utilizar una base de datos de Access en un entorno de produccin. Crear el sitio y la pgina Web

Si ya ha creado un sitio Web en Visual Web Developer completando Tutorial: Crear una pgina Web bsica en Visual Web Developer, puede utilizar ese sitio Web e ir a la seccin siguiente. De lo contrario, cree un sitio y una pgina Web nuevos siguiendo estos pasos.

Para crear un sitio Web de sistema de archivos


1. Abra Visual Web Developer. En el men Archivo, haga clic en Nuevo sitio Web.

2. 3. 4.
5.

Aparece el cuadro de dilogo Nuevo sitio Web. En Plantillas instaladas de Visual Studio, haga clic en Sitio Web ASP.NET. En el cuadro Ubicacin situado ms a la izquierda, haga clic en HTTP. Haga clic en Examinar. Haga clic en IIS local y, a continuacin, en Sitio Web predeterminado. Haga clic en el icono Crear nueva aplicacin Web ( ) y, a continuacin, asigne a la nueva aplicacin Web

Aparecer la pgina Seleccionar ubicacin.

6. 7. 8.

el nombre AccessSample. Haga clic en Abrir.

El cuadro de dilogo Nuevo sitio Web aparece con la ubicacin de la nueva aplicacin Web en el cuadro Ubicacin situado ms a la derecha.

9.

En la lista Lenguaje, haga clic en el lenguaje de programacin con el que prefiera trabajar.

El lenguaje de programacin que elija ser el lenguaje predeterminado de su sitio Web, pero tambin puede establecer el lenguaje de programacin de cada pgina de forma individual.

10.

Haga clic en Aceptar.

Visual Web Developer crea la carpeta y una nueva pgina denominada Default.aspx. El sitio Web se muestra en el Explorador de soluciones. Configurar permisos para una base de datos de Access

Un aspecto importante de trabajar con un archivo .mdb de Access es configurar correctamente los permisos. Cuando una aplicacin Web utiliza una base de datos de Access, debe tener permiso de lectura en el archivo .mdb para que la aplicacin pueda tener acceso a los datos. Adems, la aplicacin debe tener permiso de escritura en la carpeta que contiene el archivo .mdb. Se necesita permiso de escritura porque Access crea un archivo adicional con la extensin .ldb

en el que conserva informacin relativa a los bloqueos de la base de datos para usuarios simultneos. El archivo .ldb se crea en tiempo de ejecucin. De manera predeterminada, las aplicaciones Web ASP.NET se ejecutan en el contexto de una cuenta de equipo local denominada ASPNET (para Windows 2000 y Windows XP) o en el contexto de la cuenta NETWORK SERVICE (para Windows Server 2003). Por ejemplo, para Windows 2000 o Windows XP Professional, si el servidor Web se denomina ABCServer, las aplicaciones ASP.NET del equipo ABCServer se ejecutan en el contexto de la cuenta local ABCServer\ASPNET. Por tanto, para usar una base de datos de Access en una aplicacin Web ASP.NET, debe configurar la carpeta que contiene la base de datos de Access de manera que tenga permisos de lectura y escritura en la cuenta de usuario ASPNET local. Cuando se crea un sitio Web en Visual Web Developer, Visual Web Developer crea una carpeta denominada App_Data dentro de la carpeta raz actual. La carpeta est diseada para ser un almacn de datos de aplicacin, incluidas las bases de datos de Access. ASP.NET utiliza tambin la carpeta App_Data para almacenar las bases de datos que el sistema mantiene, como la base de datos de suscripcin y funciones. Cuando Visual Web Developer crea la carpeta App_Data, otorga permisos de lectura y escritura en la carpeta a la cuenta de usuario ASPNET o NETWORK SERVICE.

Nota Como medida de seguridad, el servidor Web no suministra los archivos de la carpeta App_data. No almacene ninguna pgina Web en la carpeta App_Data, porque los usuarios vern un error si solicitan una pgina de esa carpeta. En esta parte del tutorial, examinar los permisos de la carpeta App_Data para asegurarse de que funcionar correctamente cuando se ejecute la aplicacin.

Para establecer los permisos de la carpeta App_Data


1. En el Explorador de Windows, desplcese a la carpeta raz del sitio Web. Si la carpeta App_Data no existe an, crela.

La ubicacin predeterminada para el nuevo sitio Web es c:\inetpub\wwwroot\AccessSample.

2. 3.

De forma predeterminada, Visual Web Developer crea la carpeta cuando se crea un nuevo sitio Web. Haga clic con el botn secundario en la carpeta App_Data, haga clic en Propiedades y, a continuacin, haga clic en la ficha Seguridad.

4.
o o
5.

En Nombres de grupos o usuarios, busque cualquiera de estas cuentas de usuario: Si el equipo est ejecutando Windows XP Professional o Windows 2000, busque computer\ASPNET. Si el equipo est ejecutando Windows Server 2003, busque NETWORK SERVICE. Compruebe que la cuenta tiene permisos de lectura y escritura en la carpeta App_Data.

Usar datos de Access en una pgina Web de ASP.NET

Ahora puede utilizar la base de datos de Access en una pgina Web. Usar un control AccessDataSource.

Para agregar un control AccessDataSource a la pgina


1.
2. 3. 4. En Visual Web Developer, en el Explorador de soluciones, haga clic con el botn secundario en la Busque el archivo Northwind.mdb (u otro archivo .mdb de Access) que desee utilizar en este tutorial. En la carpeta App_Data, haga clic en el archivo .mdb y, a continuacin, en Agregar. Abra la pgina Default.aspx y cambie a la vista Diseo. Desde el grupo Datos del Cuadro de herramientas, arrastre un control AccessDataSource hasta la Si el men contextual Obtener acceso a tareas de origen de datos no aparece, haga clic con el

carpeta App_Data y, a continuacin, haga clic en Agregar elemento existente.

Se agregar el archivo .mdb a la aplicacin.

5.
pgina.

botn secundario en el control AccessDataSource y, a continuacin, haga clic en Mostrar etiqueta inteligente.

6.

En el men contextual Obtener acceso a tareas de origen de datos, haga clic en Configurar origen

de datos. Aparecer la ventana Configurar origen de datos - <DataSourceName>.

7.
o

En la pgina Elija una base de datos, en el cuadro Archivo de Microsoft Access Data, escriba Si lo prefiere, haga clic en Examinar y, a continuacin, en el cuadro de dilogo Seleccionar base de

~/App_Data/Northwind.mdb. datos de Microsoft Access, vaya al archivo Northwind.mdb de la carpeta App_Data.

8. 9. 10. 11. 12.


o

Haga clic en Siguiente.

Aparece la pgina Configurar instruccin Select. Haga clic en Especificar columnas de una tabla o vista. En la lista Nombre, haga clic en Categoras. Active las casillas de verificacin IdCategora, NombreCategora y Descripcin. Haga clic en Siguiente.

Aparece la pgina Consulta de prueba. Si lo prefiere, haga clic en Consulta de prueba para probar la consulta. Haga clic en Finalizar. Desde el grupo Datos del Cuadro de herramientas, arrastre un control GridView hasta la pgina. Si el men contextual Tareas de GridView no aparece, haga clic con el botn secundario en el control

13. 14.
o

GridView y, a continuacin, haga clic en Mostrar etiqueta inteligente.

15.

En el men Tareas de GridView, en el cuadro Elegir origen de datos, haga clic en

AccessDataSource1. Probar la pgina

Ahora puede ejecutar la pgina.

Para probar la pgina

Presione CTRL+F5 para ejecutar la pgina.

El control GridView muestra todas las filas de datos de la tabla Categoras. Pasos siguientes

Este tutorial describe los pasos bsicos necesarios para trabajar con datos de Access en una pgina Web de ASP.NET. El modelo de enlace de datos de ASP.NET permite trabajar con datos de diferentes orgenes de la misma manera. Por ejemplo, puede hacer lo siguiente:

Usar controles para filtrar los datos que muestra la pgina.

Para obtener informacin detallada, vea Tutorial: Acceso a datos bsico en pginas Web.

Actualizar, insertar o eliminar datos en una base de datos de Access.

Para obtener informacin detallada, vea Tutorial: Editar e insertar datos en pginas Web con el control de servidor Web DetailsView.

Crear pginas para mostrar datos de Access de tablas que tienen una relacin principal-detalle.

Para obtener informacin detallada, vea Tutorial: Crear pginas Web principal-detalle en Visual Studio. Vea tambin

Conceptos Informacin general sobre el acceso a datos en ASP.NET Establecer enlaces a datos utilizando un control de origen de datos

Exportacin de datos a un archivo XML


A continuacin se presenta el cdigo necesario para exportar a un archivo .XML el contenido de una tabla incluida en una base datos. El propsito es exportar el contenido de una tabla a un archivo XML es utilizar la potencia de presentacin y el dinamismo que se puede tener al utilizar un archivo de definicin de documento (DTD ) y una hoja de transformacin para el formato dy la presentacin (eXtensible Stylesheet Language Transformation XSLT). El propsito conlleva los siguientes pasos. 1. Crear el archivo DTD de acuerdo a los campos que conforman la tabla o mejor los campos que se requieren mostrar. Para ilustrar el ejercicio se utiliz la siguiente tabla:

2. Generar el archivo de presentacin XSLT. 3. Generar el cdigo en C# que permite: * Accesar a la base de datos y leer la informacin. * Escribir el archivo *.XML * Mostrar el archivo XML A continuacin se muestra el cdigo completo con el cual se logra el objetivo
using using using using using using using using using using using using System; System.Data; System.Data.OleDb; System.Configuration; System.Collections; System.Web; System.Web.Security; System.Web.UI; System.Web.UI.WebControls; System.Web.UI.WebControls.WebParts; System.Web.UI.HtmlControls; System.IO;

public partial class listarClientes : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e)

{ // Crea una cadena de coneccin para manejar el archivo string FILE_NAME = "C:/inetpub/wwwroot/aicem/clientes.xml"; //Variable para almacenar la cadena de conexin ConnectionString. String myConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + Server.MapPath(@"App_Data\bdaicem.mdb") + ";"; //Crear un objeto OleDbConnection //y pasar la ConnectionString al constructor. OleDbConnection myConnection = new OleDbConnection(myConnectionString); //Si el archivo existe lo borra if (File.Exists(FILE_NAME)) { Response.Write("{0} already exists."); File.Delete(FILE_NAME); //return; }

//Abrir la conexin. myConnection.Open(); //Utilizar una variable para almacenar la instruccin SQL. string mySelect = "SELECT * FROM clientes"; //Crear un objeto OleDbCommand. //Observe que pasamos la instruccin SQL y el objeto OleDbConnection. OleDbCommand myCommand = new OleDbCommand(mySelect, myConnection); //Enviar el CommandText a la conexin y crear un OleDbDataReader. //Nota: El OleDbDataReader es de slo avance. OleDbDataReader myReader = myCommand.ExecuteReader(); //Recorrer los registros de uno en uno. if (myReader.Read()) { // Crea el archivo y escribe en el la consulta using (StreamWriter sw = File.CreateText(FILE_NAME)) { sw.WriteLine("<?xml version=\"1.0\" encoding='utf-8'?>"); sw.WriteLine("<!DOCTYPE clientes SYSTEM \"clientes.dtd\">"); sw.WriteLine("<clientes contador =\"1\">"); sw.WriteLine("<cliente"); sw.WriteLine("idCliente =\"" + myReader["idCliente"].ToString() sw.WriteLine("nombres =\"" + myReader["nombres"].ToString() + sw.WriteLine("apellidos =\"" + myReader["apellidos"].ToString() + sw.WriteLine("empresa =\"" + myReader["empresa"].ToString() + sw.WriteLine("cargo =\"" + myReader["cargo"].ToString() + "\""); sw.WriteLine("telefono=\"" + myReader["telefono"].ToString() + "\""); sw.WriteLine("fax =\"" + myReader["fax"].ToString() + "\""); sw.WriteLine("email =\"" + myReader["email"].ToString() + "\""); sw.WriteLine("direccion =\"" + myReader["direccion"].ToString() + /* * Datos sin incluir en XML por seguridad respecto al cliente

+"\""); "\""); "\""); "\"");

"\"");

this.txtLogin.Text = myReader["login"].ToString(); this.txtClave.Text = myReader["clave"].ToString(); */ sw.WriteLine("espacio = \" \""); sw.WriteLine(">"); sw.WriteLine("<observaciones>" myReader["observaciones"].ToString() + "</observaciones>"); sw.WriteLine("</cliente>"); sw.WriteLine("</clientes>"); sw.Close(); } } // fin cracin de archivo else { Response.Write("No se encontraron datos en la tabla clientes"); } +

Response.Redirect("/aicem/clientes.xml"); } }

Vous aimerez peut-être aussi