Buscar este blog

sábado, 5 de abril de 2014

ADO.NET C#


Es un conjunto de componentes del software que pueden ser usados por los programadores para acceder a datos y a servicios de datos. Es comúnmente usado por los programadores para acceder y para modificar los datos almacenados en un Sistema Gestor de Bases de Datos Relacionales, aunque también puede ser usado para acceder a datos en fuentes no relacionales.
ADO.NET separa de acceso a datos de manipulación de datos en componentes discretos que se pueden utilizar por separado o en tándem. ADO.NET incluye. NET Framework para conectarse a una base de datos, ejecutar comandos y recuperar, guardar, modificar y eliminar resultados.



Objetos de ADO.NET

El objeto System.Data.OleDb.OleDbConnection
Para interactuar con una base de datos, debe tener una conexión a la misma. La conexión ayuda a identificar el servidor de base de datos, el nombre de base de datos, nombre de usuario, contraseña y otros parámetros necesarios para la conexión a la base de datos. Un objeto de conexión es utilizado por los objetos de comando para que sepan qué base de datos para ejecutar el comando.
La instancia de OleDbConnection C# lleva cadena de conexión como argumento y pasar el valor a la declaración Constructor. Una instancia de la clase OleDbConnection C # con el apoyo del proveedor de datos OLEDB.
  connetionString = "Provider = Microsoft.Jet.OLEDB.4.0;
   Origen de datos = yourdatabasename.mdb; ";
  cnn = new OleDbConnection (connetionString);
Cuando se establece la conexión entre C # aplicación y el origen de datos especificado, los comandos SQL se ejecutará con la ayuda del objeto de conexión y recuperar o manipular los datos en la base de datos. Una vez que las actividades de base de datos es a través de conexión debe ser cerrada y la liberación de los recursos de origen de datos.
  cnn.Close (); 
El método Close () en la clase OleDbConnection se utiliza para cerrar la conexión con la base. El método Close deshace cualquier transacción pendiente y libera la conexión de la base de datos conectada por el proveedor de datos OLEDB.



El objeto System.Data.OleDb.OleDbCommand
El proceso de interactuar con una base de datos significa que debe especificar las acciones que desea que se produzca. Esto se hace con un objeto de comando. Se utiliza un objeto de comando para enviar instrucciones SQL a la base de datos. Un objeto de comando utiliza un objeto de conexión de averiguar qué base de datos para comunicarse con. Puede utilizar un objeto de comando solo, para ejecutar un comando directamente, o asignar una referencia a un objeto de comando a un SqlDataAdapter, que posee un conjunto de comandos que funcionan en un grupo de datos tal como se describe a continuación.
El objeto de comando en ADO.NET ejecuta sentencias SQL y procedimientos almacenados en el origen de datos especificado en la C # objeto de conexión. El objeto de comando requiere una instancia de un objeto de conexión C # para la ejecución de las sentencias SQL.
Con el fin de recuperar un conjunto de resultados o ejecutar una instrucción SQL en un origen de datos, primero debe crear un objeto de conexión y abrir una conexión con el origen de datos especificado en la cadena de conexión. El siguiente paso es asignar la conexión abierta a la propiedad de conexión del objeto de comando. Entonces el objeto de comando se puede ejecutar las sentencias de SQL. Después de la ejecución de la sentencia de SQL, el objeto de comando devolverá un conjunto de resultados. Podemos recuperar el conjunto de resultados utilizando un lector de datos.



El objeto Comando también Incluye 2 objetos dentro de él los cuales son:
ExecuteNonQuery
El ExecuteNonQuery () es uno de los método más utilizado en OleDbCommand objetos y se utiliza para ejecutar sentencias que no devuelve resultado conjuntos. El ExecuteNonQuery () realiza las tareas de definición de datos, así como las tareas de manipulación de datos también.
  cmd.ExecuteNonQuery (); 
Las tareas de definición de datos como la creación de procedimientos almacenados, vistas, etc. realizan por el ExecuteNonQuery (). También las tareas de manipulación de datos, como insertar, actualizar, eliminar, etc. realizan por el ExecuteNonQuery ().
ExecuteReader
ExecuteReader () en el objeto OleDbCommand envía los comandos a OleDbConnection objeto y rellenar un objeto OleDbDataReader basado en las sentencias SQL y procedimientos almacenados pasaron por el objeto OleDbCommand.


El objeto System.Data.OleDb.DataReader
Objeto DataReader en ADO.NET es un avance de sólo, la recuperación basada en secuencias de sólo lectura de los resultados de la consulta de las fuentes de datos, que no se actualizan los datos. El DataReader no se puede crear directamente desde el código, pueden creada únicamente llamando al método ExecuteReader de un objeto de comando.


  DataReader.Read (); 

OleDbDataReader objetos proporciona una orientada a la conexión de acceso a datos para los orígenes de datos OLEDB través de aplicaciones de C #. ExecuteReader () en el objeto OleDbCommand envía los comandos a OleDbConnection objeto y rellenar un objeto OleDbDataReader basado en las sentencias SQL y procedimientos almacenados pasaron por el objeto OleDbCommand.
  OleDbDataReader oledbReader = oledbCmd.ExecuteReader (); 
Cuando el método ExecuteReader en OleDbCommand objeto ejecutar, será una instancia de un objeto OleDb.OleDbDataReader. Cuando empezamos a leer de un OleDbDataReader siempre debe estar abierto y posicionado antes del primer registro. El método Read () en el OleDbDataReader se utiliza para leer las filas de la OleDbDataReader y siempre se mueve hacia adelante a una nueva fila válida, si existe cualquier fila.


Ejemplos de cómo Insertar información en C#.

Haremos un ejemplo que permita el Ingreso de información.

La instrucción SQL que utilizaremos es:

Insert Into Nombre_de_la_Tabla (Campo1,Campo2,Campo3) values (Valor1,Valor2,Valor3)

Ejemplo en C#

    1.      En primer lugar diseñamos un formulario y agregamos un botón, (el botón lo hemos diseñado para que al momento de ejecutar el programa solo daremos clic en el y se ejecutara la instrucción SQL que hemos hecho.)



     2.      Luego agregamos los siguientes objetos. Dando clic en el cuadro de herramientas, luego damos clic derecho en Datos y luego damos clic en elegir elementos y se nos aparecerá una ventana donde seleccionaremos los objetos que vamos a utilizar en este caso seleccionamos los siguientes objetos.
 



      3.      Luego damos clic en el objeto ya agregado en este caso en oledbconnetion y creamos la conexión.
    
















  4.      Luego de haber dado clic en cambiar se nos abrirá otra ventana y seleccionaremos.

      5.      Luego en Examinar elegimos donde tenemos la base de datos.

      6.      Luego damos doble Clic en el botón que agregamos al formulario y escribimos el siguiente código.

// aqui programaremos lo del boton que utilizaremos//
        private void button1_Click(object sender, EventArgs e)
        {
            //En la cadena escribimos la direccion de la unidad donde tenemos la base de datos//
            string Cadena = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=\"G:\\Base de Datos III Tecnico\\Base de datos Proyecto.accdb\"";
            System.Data.OleDb.OleDbConnection Conexion = new System.Data.OleDb.OleDbConnection(Cadena);
            //Aqui se abre la conexion//
            Conexion.Open();
            MessageBox.Show("Conexion abierta");
            //Luego escribimos La intruccion sql que deceamos escribir en este caso es un Insert//
            string cSQL = "Insert into Inscripciones(RNE, Nombres, Apellidos) Values (\"785214\",\"Bavaros\", \"Grupo 3\")";
            System.Data.OleDb.OleDbCommand Comando = new System.Data.OleDb.OleDbCommand(cSQL, Conexion);
            Comando.ExecuteReader();
            // Cierre de la conexion//
            Conexion.Close();
        }

8. Con todos los códigos que C# incluye nos tiene que quedar así:



9. Luego lo ejecutamos y damos clic en el Botón que colocamos en el formulario y nos tendrá que aparecer este Mensaje que es el que le dejamos en el MessageBox. Y si no es porque tenemos mala la conexión.