C# día 18: acceso a BD
Acceso a BBDD con ADO.NET. Para ejemplos simples se puede usar un ficherillo de access o una conexión odbc cualquiera.
La cosa no cambia mucho;
/**
* AccesoBD.cs
* Clase para probar el acceso a BD desde C#
* Se usa el ADO.NET
* En este caso se prueba una select, pero las otras sentencias
* se ejecutan del mismo modo, aunque sin guardar resultado en un DataReader claro.
*/
using System;
// Para el acceso a BBDD
using System.Data;
using System.Data.OleDb;
public class AccesoBD
{
// Método principal
public static void Main ()
{
// String de conexion, al estilo de ASP
string stringConexion = "Provider=Microsoft.Jet.OLEDB.4.0;"
+ "User Id=;Password=;" + @"Data Source=Discos.mdb";
// Esta es la consulta que ejecutaremos
string consulta = "SELECT * FROM Discos";
// Creamos el objeto de la conexion
OleDbConnection conexion = new OleDbConnection(stringConexion);
// Creamos el objeto para ejecutar la sentencia
OleDbCommand sentencia = new OleDbCommand(consulta, conexion);
// Un resultSet o recordSet para guardar el resultado de la sentencia
OleDbDataReader resultSet = null;
try { // metemos control de excepciones, por si las moscas
// Abrimos la conexión
conexion.Open();
// Ejecutamos la sentencia y mostramos el resultado
resultSet = sentencia.ExecuteReader();
// NOTA: si fuera un INSERT, UPDATE o DELETE se haría así:
// int registros = sentencia.ExecuteNonQuery(); // registros serían los reg afectados
System.Console.WriteLine("Estos datos hay en la tabla
");
// Recorremos el resultado
while (resultSet.Read())
{
// Para tomar una columna de cada registro usamos funciones de este pelo
// segun el tipo de dato: getString, getBoolean, getDouble,...
// nombre, estilo , precio
System.Console.Write("Intérprete: {0} ", resultSet.GetString(2));
System.Console.Write("Estilo: {0} ", resultSet.GetString(3));
System.Console.WriteLine("Precio: {0} ", resultSet.GetDouble(4));
}
// IMPORTANTE, al final de la consulta hay que cerrar
// tanto el datareader como la conexión!!!
resultSet.Close();
conexion.Close();
}
catch (OleDbException ode)
{
System.Console.WriteLine("Error de OleDb: {0} ", ode);
}
catch (Exception e)
{
System.Console.WriteLine("Algún error general: {0} ", e);
}
}
}
En .NET hay unos objetos que recuperan datos y se puede manipular para luego actualizar la BBDD con ese conjunto de datos. Personalmente me parece una animalada, a no ser que seas el usuario único de la aplicación o no te importe bloquear tablas.
pello.io