Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
NET
ADO.NET es un conjunto de componentes del software que pueden ser usados por los programadores para acceder a datos y a servicios de datos. Es una parte de la biblioteca de clases base que estn incluidas en el Microsoft .NET Framework. Es comnmente usado por los programadores para acceder y para modificar los datos almacenados en un Sistema Gestor de Bases de Datos Relacionales, aunque tambin puede ser usado para acceder a datos en fuentes no relacionales. ADO.NET es a veces considerado como una evolucin de la tecnologa ActiveX Data Objects (ADO), pero fue cambiado tan extensivamente que puede ser concebido como un producto enteramente nuevo. Componente de software
Un componente UML con interfaces provedas y requeridas Componente de Software, un elemento de un sistema software que ofrece un conjunto de servicios, o funcionalidades, a travs de interfaces definidas. ADO.NET es un conjunto de clases que exponen servicios de acceso a datos para el programador de .NET. ADO.NET ofrece abundancia de componentes para la creacin de aplicaciones de uso compartido de datos distribuidas. Constituye una parte integral de .NET Framework y proporciona acceso a datos relacionales, XML y de aplicaciones. ADO.NET satisface diversas necesidades de desarrollo, como la creacin de clientes de base de datos de aplicaciones para usuario y objetos empresariales de nivel medio que utilizan aplicaciones, herramientas, lenguajes o exploradores de Internet.
Novedades en ADO.NET
.NET Framework 2.0
Las siguientes caractersticas son nuevas en ADO.NET versin 2.0.
Proveedores administrados
Enumeracin de servidores
Ofrece compatibilidad con la enumeracin de instancias activas de Microsoft SQL Server 2000 y
posterior. Para obtener ms informacin, vea Enumeracin de instancias de SQL Server. Procesamiento asincrnico
Permite realizar operaciones asincrnicas de base de datos mediante una API modelada despus del modelo asincrnico que utiliza .NET Framework. Para obtener ms informacin, vea Realizacin de
Permite que las aplicaciones tengan ms de un SqlDataReader abierto en una conexin cuando cada instancia de SqlDataReader se inicia desde un comando distinto. Para obtener ms informacin,
vea Uso de varios conjuntos de resultados activos. Operaciones de copia masiva Permite realizar inserciones masivas rpidas mediante el proveedor de datos de .NET para SQL Server. Para obtener ms informacin, vea Realizacin de operaciones de copia masiva. Nuevos tipos de datos mximos de SQL Server Ofrece compatibilidad con los tipos de datos varchar(max), nvarchar(max), varbinary(max) en SQL Server 2005. Para obtener ms informacin, vea Trabajo con tipos de valores grandes Tipos definidos por el usuario de SQL Server Ofrece compatibilidad con tipos de datos definidos por el usuario (UDT) en SQL Server 2005. Para obtener ms informacin, vea Creacin y uso de tipos definidos por el usuario. Notificaciones de SQL Server
Permite que las aplicaciones .NET Framework enven un comando a SQL Server y soliciten que se genere una notificacin si la ejecucin del mismo comando fuera a producir conjuntos de resultados diferentes de los inicialmente recuperados. Para obtener ms informacin, vea Uso de notificaciones
Ofrece compatibilidad con el aislamiento de instantneas, un mecanismo de SQL Server 2005 diseado para reducir el bloqueo en aplicaciones OLTP. Para obtener ms informacin, vea Uso de
Ofrece compatibilidad con el reflejo de bases de datos en SQL Server 2005 con una nueva sintaxis de cadena de conexin para especificar un servidor asociado de conmutacin por error. Para obtener
Ofrece compatibilidad con la recuperacin de estadsticas de tiempo de ejecucin en SQL Server 2005. Actualmente hay disponibles 21 contadores diferentes desde el proveedor de .NET para SQL
Server. Para obtener ms informacin, vea Uso de estadsticas de proveedor. Cambio de contrasea en SQL Server 2005
Permite que las aplicaciones .NET Framework cambien la contrasea de una cuenta de usuario sin
necesidad de que intervenga el administrador. Para obtener ms informacin, vea ChangePassword. Procesamiento por lotes
Mejora el rendimiento de la aplicacin mediante la reduccin del nmero de viajes de ida y vuelta a la base de datos al aplicar las actualizaciones desde el DataSet. Para obtener ms informacin,
vea Realizar operaciones por lotes mediante DataAdapters. Seguimiento ADO.NET 2.0 presenta una nueva funcionalidad integrada de seguimiento de datos que admiten los proveedores de datos de .NET. Para obtener ms informacin, vea Seguimiento. Confianza parcial
Todos los proveedores de datos de Microsoft se admiten ahora en entornos de confianza parcial.
Para obtener ms informacin, vea Seguridad de acceso a cdigo y ADO.NET. Control de agrupamiento de conexiones
ADO.NET 2.0 presenta dos nuevos mtodos para borrar el grupo de conexin: ClearAllPools y ClearPool. Para obtener ms informacin, vea Uso de agrupacin de
SQL Server 2005 tiene un nuevo tipo de datos XML y System.Data.SqlClient le ofrece una robusta compatibilidad en el cliente. Los valores XML se exponen mediante el marco System.Xml para
conseguir la completa integracin con el modelo de programacin .NET. Integracin con la optimizacin de transacciones del sistema y transacciones promocionadas para SQL Server 2005
.NET 2.0 incluye un nuevo marco de transacciones, accesible a travs del espacio de nombres System.Transactions. Al combinar System.Transactions para la administracin de transacciones distribuidas, System.Data.SqlClient para el acceso a la base de datos y SQL Server 2005 como servidor, es posible optimizar las transacciones distribuidas de modo que el costo extra de convertirlas en "distribuidas" slo se realice cuando las transacciones son realmente necesarias.
Las clases de ADO.NET se encuentran en el archivo System.Data.dll y estn integradas con las clases de XML que se encuentran en el archivo System.Xml.dll. Cuando se compila un cdigo que utiliza el espacio de nombres System. Data, es necesario hacer referencia a los archivos System.Data.dll y System.Xml.dll. Para obtener un ejemplo de una aplicacin de ADO.NET que se conecta a una base de datos, recupera datos de sta y, a continuacin, los muestra en el smbolo del sistema, vea Aplicacin de ejemplo de ADO.NET. ADO.NET proporciona funcionalidad a los programadores que escriben cdigo administrado similar a la funcionalidad que los objetos ADO (ActiveX Data Objects) proporcionan a los programadores de modelo de objetos componentes (COM) nativo. Para obtener ms informacin sobre las diferencias entre ADO y ADO.NET, veaADO.NET for the ADO Programmer en MSDN.
Arquitectura de ADO.NET
.NET Framework 2.0
Tradicionalmente, el procesamiento de datos ha dependido principalmente de un modelo de dos niveles basado en una conexin. A medida que el procesamiento de datos utiliza cada vez ms arquitecturas de varios niveles, los programadores estn pasando a un enfoque sin conexin con el fin de proporcionar una escalabilidad mejor para sus aplicaciones.
Componentes de ADO.NET
Existen dos componentes de ADO.NET que se pueden utilizar para obtener acceso a datos y manipularlos: Proveedores de datos de .NET Framework
El DataSet
DataSet
El DataSet de ADO.NET est expresamente diseado para el acceso a datos independientemente del origen de datos. Como resultado, se puede utilizar con mltiples y distintos orgenes de datos, con datos XML o para administrar datos locales de la aplicacin. El DataSet contiene una coleccin de uno o ms objetos DataTable formados por filas y columnas de datos, as como informacin sobre claves principales, claves externas, restricciones y relaciones relativa a los datos incluidos en los objetos DataTable. En el diagrama siguiente se ilustra la relacin entre un proveedor de datos de .NET Framework y un DataSet. Arquitectura de ADO.NET
DataSet de ADO.NET
.NET Framework 2.0
Otras versiones
Personas que lo han encontrado til: 8 de 8 - Valorar este tema El objeto DataSet es esencial para la compatibilidad con situaciones de datos distribuidos desconectados con ADO.NET. El DataSet es una representacin de datos residente en memoria que proporciona un modelo de programacin relacional coherente con independencia del origen de datos. Se puede utilizar con muchos y distintos orgenes de datos, con datos XML o para administrar datos locales de la aplicacin. El DataSet representa un conjunto completo de datos que incluye tablas relacionadas y restricciones, as como relaciones entre las tablas. En la siguiente ilustracin se muestra el modelo de objetos DataSet. Modelo de objetos DataSet
Los mtodos y objetos de un DataSet concuerdan con los del modelo de base de datos relacional. El DataSet tambin puede mantener y recargar su contenido como XML y su esquema como esquema de lenguaje de definicin de esquemas XML (XSD). Para obtener ms informacin, vea Utilizar XML en un DataSet.
DataTableCollection
Un DataSet de ADO.NET contiene una coleccin de cero o ms tablas representadas por objetos DataTable. La DataTableCollection contiene todos los objetos DataTable de un DataSet. La DataTable se define en el espacio de nombres System. Data y representa una nica tabla de datos residentes en memoria. Contiene una coleccin de columnas representadas por una DataColumnCollection, as como restricciones representadas por una ConstraintCollection, que juntas definen el esquema de la tabla. Una DataTabletambin contiene una coleccin de filas representadas por la DataRowCollection, que contiene los datos de la tabla. Una DataRow conserva, junto con su estado actual, sus versiones actual y original para identificar los cambios en los valores almacenados en la fila.
DataRelationCollection
Un DataSet contiene relaciones en su objeto DataRelationCollection. Una relacin, representada por el objeto DataRelation, asocia las filas de una DataTable con las filas de otra DataTable. Las relaciones son anlogas a las rutas de acceso de unin que podran existir entre columnas de claves principales y externas en una base de datos relacional. Una DataRelation identifica las columnas coincidentes en dos tablas de un DataSet. Las relaciones permiten el desplazamiento entre tablas de un DataSet. Los elementos esenciales de una DataRelation son el nombre de la relacin, el nombre de las tablas que se relacionan y las columnas relacionadas de cada tabla. Es posible crear relaciones con ms de una columna por tabla si se especifica una matriz de objetos DataColumn como columnas de claves. Cuando agrega una relacin al DataRelationCollection, puede agregar opcionalmente una UniqueKeyConstraint y
una ForeignKeyConstraintpara imponer restricciones de integridad cuando se realizan cambios en valores de columna relacionados.
ExtendedProperties
DataSet, DataTable y DataColumn tienen toda una propiedad ExtendedProperties. ExtendedProperties es una PropertyCollection en la que puede colocar informacin personalizada, como la instruccin SELECT que se ha utilizado para generar el conjunto de resultados o la hora en que se generaron los datos. La coleccin ExtendedProperties se mantiene con la informacin de esquema del DataSet.
SqlClient
C# VB
using System; using System.Data; using System.Data.SqlClient; class Program { static void Main()
{ string connectionString = GetConnectionString(); string queryString = "SELECT CategoryID, CategoryName FROM dbo.Categories;"; using (SqlConnection connection = new SqlConnection(connectionString)) { SqlCommand command = connection.CreateCommand(); command.CommandText = queryString; try { connection.Open(); SqlDataReader reader = command.ExecuteReader(); while (reader.Read()) { Console.WriteLine("\t{0}\t{1}", reader[0], reader[1]); } reader.Close(); } catch (Exception ex) { Console.WriteLine(ex.Message); } } } static private string GetConnectionString() { // To avoid storing the connection string in your code, // you can retrieve it from a configuration file. return "Data Source=(local);Initial Catalog=Northwind;" + "Integrated Security=SSPI"; } }
OleDb
C# VB
using System; using System.Data; using System.Data.OleDb; class Program { static void Main() {
string connectionString = GetConnectionString(); string queryString = "SELECT CategoryID, CategoryName FROM Categories;"; using (OleDbConnection connection = new OleDbConnection(connectionString)) { OleDbCommand command = connection.CreateCommand(); command.CommandText = queryString; try { connection.Open(); OleDbDataReader reader = command.ExecuteReader(); while (reader.Read()) { Console.WriteLine("\t{0}\t{1}", reader[0], reader[1]); } reader.Close(); } catch (Exception ex) { Console.WriteLine(ex.Message); } } } static private string GetConnectionString() { // To avoid storing the connection string in your code, // you can retrieve it from a configuration file. // Assumes Northwind.mdb is located in the c:\Data folder. return "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + "c:\\Data\\Northwind.mdb;User Id=admin;Password=;"; } }
Odbc
C# VB
using System; using System.Data; using System.Data.Odbc; class Program { static void Main() {
string connectionString = GetConnectionString(); string queryString = "SELECT CategoryID, CategoryName FROM Categories;"; using (OdbcConnection connection = new OdbcConnection(connectionString)) { OdbcCommand command = connection.CreateCommand(); command.CommandText = queryString; try { connection.Open(); OdbcDataReader reader = command.ExecuteReader(); while (reader.Read()) { Console.WriteLine("\t{0}\t{1}", reader[0], reader[1]); } reader.Close(); } catch (Exception ex) { Console.WriteLine(ex.Message); } } } static private string GetConnectionString() { // To avoid storing the connection string in your code, // you can retrieve it from a configuration file. // Assumes Northwind.mdb is located in the c:\Data folder. return "Driver={Microsoft Access Driver (*.mdb)};" + "Dbq=c:\\Data\\Northwind.mdb;Uid=Admin;Pwd=;"; } }
OracleClient
C# VB
using System; using System.Data; using System.Data.OracleClient; class Program { static void Main() {
string connectionString = GetConnectionString(); string queryString = "SELECT CUSTOMER_ID, NAME FROM DEMO.CUSTOMER"; using (OracleConnection connection = new OracleConnection(connectionString)) { OracleCommand command = connection.CreateCommand(); command.CommandText = queryString; try { connection.Open(); OracleDataReader reader = command.ExecuteReader(); while (reader.Read()) { Console.WriteLine("\t{0}\t{1}", reader[0], reader[1]); } reader.Close(); } catch (Exception ex) { Console.WriteLine(ex.Message); } } } static private string GetConnectionString() { // To avoid storing the connection string in your code, // you can retrieve it from a configuration file. // Assumes Northwind.mdb is located in the c:\Data folder. return "Data Source=ThisOracleServer;Integrated Security=yes;"; } }
namespace CAlibros
{ class Program { static void Main(string[] args) { LeerDatos(); // Invocar Func. Leer Datos }
//---Menu Principal //................................. static void Menu() { Console.WriteLine(""); Console.WriteLine("--- Menu Libros ---"); Console.WriteLine("1) Visualizar Datos"); Console.WriteLine("2) Agregar Libro"); Console.WriteLine("3) Editar Libro"); Console.WriteLine("4) Buscar Libro"); Console.WriteLine("5) Elimibar Libro"); Console.WriteLine("6) Salir"); Console.Write("Seleccione una Opcion:"); } //--Func Leer Datos //------------------------------------
static void LeerDatos() { int opc; String nombre = ""; String autor = ""; int clave = 0; do { opc = 0; Menu(); // Invocar Menu opc = Convert.ToInt32(Console.ReadLine());
if (opc == 1) // Mostrar Datos { mostrarDatos(); // Func. mostrar datos } if (opc == 2) // Agregar Libro { Console.Write("Nombre del Libro: "); nombre = Console.ReadLine(); Console.Write("Autor: "); autor = Console.ReadLine(); if (AgregarLibro(nombre, autor) == true) // Invocar Func. Add libro { Console.WriteLine("Libro Agregado");
} } if (opc == 3) { // Editar Libro Console.Write("ID: "); clave = Convert.ToInt32(Console.ReadLine()); Console.Write("Nombre del Libro: "); nombre = Console.ReadLine(); Console.Write("Autor: "); autor = Console.ReadLine(); if (EditarLibro(clave, nombre, autor) == true) // Invocar Func. Edit libro { Console.WriteLine("!! Libro Editado !!"); } else { Console.WriteLine("!! Libro no existe !!"); } } if (opc == 4) { Console.Write("Clave del Libro:"); BuscarLibro(Convert.ToInt32(Console.ReadLine())); } if (opc == 5) { // Eliminar Libro Console.Write("Ingrese ID: "); if (EliminarLibro(Convert.ToInt32(Console.ReadLine()))==true) // Invocar Func. Elim libro {
Console.WriteLine("!! Libro Eliminado !!"); } else { Console.WriteLine("!! El Libro no existe !!"); } } } while (opc != 6); }
//..Mostrar Libros //............................................................. static void mostrarDatos() { string connectionString = GetConnectionString(); string queryString = "SELECT * FROM libros"; using (MySqlConnection connection = new MySqlConnection(connectionString)) { MySqlCommand command = connection.CreateCommand(); command.CommandText = queryString;
try { connection.Open();
{ Console.WriteLine("\t{0}\t{1}\t{2}",reader[0], reader[1],reader[2]); }
//... Add Libro //..................................................................... static Boolean AgregarLibro(String nom, String aut) { int res = 0; string connectionString = GetConnectionString(); string queryString = "Insert into libros(nombre,autor)values('"+nom+"','"+aut+"')"; using (MySqlConnection connection = new MySqlConnection(connectionString)) { MySqlCommand command = connection.CreateCommand(); command.CommandText = queryString;
try { connection.Open(); res = command.ExecuteNonQuery(); if (res != 0) { return true; } else { return false; } } catch (Exception ex) { Console.WriteLine(ex.Message); return false; } } }
//... Fuunc. Eliminar Libro //.......................................................................... static Boolean EliminarLibro(int clave) { int res = 0; string connectionString = GetConnectionString(); string query = "Delete from libros where id = " + clave + "";
using (MySqlConnection cnn = new MySqlConnection(connectionString)) { MySqlCommand command = cnn.CreateCommand(); command.CommandText = query; try { cnn.Open(); res = command.ExecuteNonQuery(); // Ejecutar Consulta if (res != 0) { return true; } else { return false; }
//.......................................................................... static Boolean EditarLibro(int clave, String nom,String aut) { int res = 0; string connectionString = GetConnectionString(); string query = "Update libros set nombre = '" + nom + "',autor = '"+ aut +"' where id = "+clave+""; using (MySqlConnection cnn = new MySqlConnection(connectionString)) { MySqlCommand command = cnn.CreateCommand(); command.CommandText = query; try { cnn.Open(); res = command.ExecuteNonQuery(); // Ejecutar Consulta if (res != 0) { return true; } else { return false; }
//..Buscar Libro //............................................................. static void BuscarLibro(int clave) { string connectionString = GetConnectionString(); string queryString = "SELECT * FROM libros where id = " + clave + ""; using (MySqlConnection connection = new MySqlConnection(connectionString)) { MySqlCommand command = connection.CreateCommand(); command.CommandText = queryString;
try { connection.Open();
MySqlDataReader reader = command.ExecuteReader(); Console.WriteLine(""); while (reader.Read()) { Console.WriteLine("\t{0}\t{1}\t{2}", reader[0], reader[1], reader[2]);
//--- Retornar Conexion static private string GetConnectionString() { return "server=localhost;User Id=root;password=1234;Persist Security Info=True;database=biblioteca"; } } }
SqlClient
C# VB
Option Explicit On Option Strict On Imports System Imports System.Data Imports System.Data.SqlClient Public Class Program Public Shared Sub Main() Dim connectionString As String = GetConnectionString() Dim queryString As String = _ "SELECT CategoryID, CategoryName FROM dbo.Categories;" Using connection As New SqlConnection(connectionString) Dim command As SqlCommand = connection.CreateCommand() command.CommandText = queryString Try connection.Open() Dim dataReader As SqlDataReader = _ command.ExecuteReader() Do While dataReader.Read() Console.WriteLine(vbTab & "{0}" & vbTab & "{1}", _ dataReader(0), dataReader(1)) Loop dataReader.Close() Catch ex As Exception Console.WriteLine(ex.Message) End Try End Using End Sub Private Shared Function GetConnectionString() As String ' To avoid storing the connection string in your code, ' you can retrieve it from a configuration file. Return "Data Source=(local);Initial Catalog=Northwind;" _ & "Integrated Security=SSPI;" End Function End Class
OleDb
C# VB
Option Explicit On Option Strict On Imports System Imports System.Data Imports System.Data.OleDb Public Class Program Public Shared Sub Main() Dim connectionString As String = GetConnectionString() Dim queryString As String = _ "SELECT CategoryID, CategoryName FROM Categories;" Using connection As New OleDbConnection(connectionString) Dim command As OleDbCommand = connection.CreateCommand() command.CommandText = queryString Try connection.Open() Dim dataReader As OleDbDataReader = _ command.ExecuteReader() Do While dataReader.Read() Console.WriteLine(vbTab & "{0}" & vbTab & "{1}", _ dataReader(0), dataReader(1)) Loop dataReader.Close() Catch ex As Exception Console.WriteLine(ex.Message) End Try End Using End Sub Private Shared Function GetConnectionString() As String ' To avoid storing the connection string in your code, ' you can retrieve it from a configuration file. ' Assumes Northwind.mdb is located in c:\Data folder. Return "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" _ & "c:\Data\Northwind.mdb;User Id=admin;Password=;" End Function End Class
Odbc
C# VB
Option Explicit On Option Strict On Imports System Imports System.Data Imports System.Data.Odbc Public Class Program Public Shared Sub Main() Dim connectionString As String = GetConnectionString() Dim queryString As String = _ "SELECT CategoryID, CategoryName FROM Categories;" Using connection As New OdbcConnection(connectionString) Dim command As OdbcCommand = connection.CreateCommand() command.CommandText = queryString Try connection.Open() Dim dataReader As OdbcDataReader = _ command.ExecuteReader() Do While dataReader.Read() Console.WriteLine(vbTab & "{0}" & vbTab & "{1}", _ dataReader(0), dataReader(1)) Loop dataReader.Close() Catch ex As Exception Console.WriteLine(ex.Message) End Try End Using End Sub Private Shared Function GetConnectionString() As String ' To avoid storing the connection string in your code, ' you can retrieve it from a configuration file. ' Assumes Northwind.mdb is located in c:\Data folder. Return "Driver={Microsoft Access Driver (*.mdb)};" _ & "Dbq=c:\Data\Northwind.mdb;Uid=Admin;Pwd=;" End Function End Class
OracleClient
C# VB
Option Explicit On Option Strict On Imports System Imports System.Data Imports System.Data.OracleClient Public Class Program Public Shared Sub Main() Dim connectionString As String = GetConnectionString() Dim queryString As String = _ "SELECT CUSTOMER_ID, NAME FROM DEMO.CUSTOMER" Using connection As New OracleConnection(connectionString) Dim command As OracleCommand = connection.CreateCommand() command.CommandText = queryString Try connection.Open() Dim dataReader As OracleDataReader = _ command.ExecuteReader() Do While dataReader.Read() Console.WriteLine(vbTab & "{0}" & vbTab & "{1}", _ dataReader(0), dataReader(1)) Loop dataReader.Close() Catch ex As Exception Console.WriteLine(ex.Message) End Try End Using End Sub Private Shared Function GetConnectionString() As String ' To avoid storing the connection string in your code, ' you can retrieve it from a configuration file. Return "Data Source=ThisOracleServer;Integrated Security=yes;" End Function End Class
namespace CAlibros { class Program { static void Main(string[] args) { LeerDatos(); // Invocar Func. Leer Datos }
//---Menu Principal //................................. static void Menu() { Console.WriteLine(""); Console.WriteLine("--- Menu Libros ---"); Console.WriteLine("1) Visualizar Datos"); Console.WriteLine("2) Agregar Libro"); Console.WriteLine("3) Editar Libro"); Console.WriteLine("4) Buscar Libro");
Console.WriteLine("5) Elimibar Libro"); Console.WriteLine("6) Salir"); Console.Write("Seleccione una Opcion:"); } //--Func Leer Datos //-----------------------------------static void LeerDatos() { int opc; String nombre = ""; String autor = ""; int clave = 0; do { opc = 0; Menu(); // Invocar Menu opc = Convert.ToInt32(Console.ReadLine());
if (opc == 1) // Mostrar Datos { mostrarDatos(); // Func. mostrar datos } if (opc == 2) // Agregar Libro {
Console.Write("Nombre del Libro: "); nombre = Console.ReadLine(); Console.Write("Autor: "); autor = Console.ReadLine(); if (AgregarLibro(nombre, autor) == true) // Invocar Func. Add libro { Console.WriteLine("Libro Agregado"); } } if (opc == 3) { // Editar Libro Console.Write("ID: "); clave = Convert.ToInt32(Console.ReadLine()); Console.Write("Nombre del Libro: "); nombre = Console.ReadLine(); Console.Write("Autor: "); autor = Console.ReadLine(); if (EditarLibro(clave, nombre, autor) == true) // Invocar Func. Edit libro { Console.WriteLine("!! Libro Editado !!"); } else { Console.WriteLine("!! Libro no existe !!"); } } if (opc == 4) {
Console.Write("Clave del Libro:"); BuscarLibro(Convert.ToInt32(Console.ReadLine())); } if (opc == 5) { // Eliminar Libro Console.Write("Ingrese ID: "); if (EliminarLibro(Convert.ToInt32(Console.ReadLine()))==true) // Invocar Func. Elim libro { Console.WriteLine("!! Libro Eliminado !!"); } else { Console.WriteLine("!! El Libro no existe !!"); } } } while (opc != 6); }
//..Mostrar Libros //............................................................. static void mostrarDatos() { string connectionString = GetConnectionString(); string queryString = "SELECT * FROM libros"; using (MySqlConnection connection = new MySqlConnection(connectionString)) { MySqlCommand command = connection.CreateCommand(); command.CommandText = queryString;
try { connection.Open();
//... Add Libro //..................................................................... static Boolean AgregarLibro(String nom, String aut) { int res = 0;
string connectionString = GetConnectionString(); string queryString = "Insert into libros(nombre,autor)values('"+nom+"','"+aut+"')"; using (MySqlConnection connection = new MySqlConnection(connectionString)) { MySqlCommand command = connection.CreateCommand(); command.CommandText = queryString;
try { connection.Open(); res = command.ExecuteNonQuery(); if (res != 0) { return true; } else { return false; } } catch (Exception ex) { Console.WriteLine(ex.Message); return false; } } }
//... Fuunc. Eliminar Libro //.......................................................................... static Boolean EliminarLibro(int clave) { int res = 0; string connectionString = GetConnectionString(); string query = "Delete from libros where id = " + clave + ""; using (MySqlConnection cnn = new MySqlConnection(connectionString)) { MySqlCommand command = cnn.CreateCommand(); command.CommandText = query; try { cnn.Open(); res = command.ExecuteNonQuery(); // Ejecutar Consulta if (res != 0) { return true; } else { return false; }
//... Fuunc. Editar Libro //.......................................................................... static Boolean EditarLibro(int clave, String nom,String aut) { int res = 0; string connectionString = GetConnectionString(); string query = "Update libros set nombre = '" + nom + "',autor = '"+ aut +"' where id = "+clave+""; using (MySqlConnection cnn = new MySqlConnection(connectionString)) { MySqlCommand command = cnn.CreateCommand(); command.CommandText = query; try { cnn.Open(); res = command.ExecuteNonQuery(); // Ejecutar Consulta if (res != 0) { return true;
//..Buscar Libro //............................................................. static void BuscarLibro(int clave) { string connectionString = GetConnectionString(); string queryString = "SELECT * FROM libros where id = " + clave + ""; using (MySqlConnection connection = new MySqlConnection(connectionString)) { MySqlCommand command = connection.CreateCommand(); command.CommandText = queryString;
try {
connection.Open();
MySqlDataReader reader = command.ExecuteReader(); Console.WriteLine(""); while (reader.Read()) { Console.WriteLine("\t{0}\t{1}\t{2}", reader[0], reader[1], reader[2]); }
//--- Retornar Conexion static private string GetConnectionString() { return "server=localhost;User Id=root;password=1234;Persist Security Info=True;database=biblioteca"; } }