Saltar al contenido

www. La Mandarina Mecánica .es

…ahora con internet los niños se te educan solos… Homer Simpson…

Archivo

Categoría: Vb.net

Introducción a ADO.NET.
ADO.NET es un conjunto de clases relacionadas entre sí que están especializadas en ofrecer toda la funcionalidad que un programador necesita para realizar el acceso a datos. Las clases genéricas expuestas por ADO.NET se encuentran bajo el espacio de nombres System.Data
El objeto más importante a la hora de trabajar con el nuevo modelo de acceso a datos es el DataSet

Arquitectura de ADO.NET
.
Existen dos capas fundamentales dentro de su arquitectura:  la capa conectada y la desconectada.

27y4ybxw_ado_2en-usvs_90

La capa conectada.
La capa conectada de ADO.NET contiene objetos especializados en la conexión con los orígenes de datos. Así, la clase genérica Connection se utiliza para establecer Conexiones a los orígenes de datos. La clase Command se encarga de enviar comandos al origen de datos. La clase DataReader lee los resultados de los comandos.
La clase DataAdapter hace uso de las tres anteriores para actuar de puente entre la capa conectada y la desconectada.

Un proveedor de datos de ADO.NET es una implementación concreta de las clases conectadas abstractas que hemos visto, que hereda de éstas y que tiene en cuenta ya todas las particularidades del origen de datos en cuestión.
Por ejemplo, las clases específicas para acceder a SQL Server se llaman SqlConnection, SqlCommand, SqlDataReader y SqlDataAdapter y se encuentran bajo el espacio de nombres System.Data.SqlClient.

Existen proveedores nativos, que son los que se comunican directamente con el Origen de datos (por ejemplo el de SQL Server o el de Oracle), y proveedores “puente”, que se utilizan para acceder a través de ODBC u OLEDB cuando no existe un proveedor nativo para un determinado origen de datos.
Los proveedores puente, ofrecen un rendimiento menor debido a la capa intermedia que están utilizando (ODBC u OLEDB). Se puede utilizar siempre el proveedor puente para OLEDB y así escribir código compatible con diversos gestores de datos de forma muy sencilla. Aunque esto hará que baje bastante el rendimiento.
Proveedor Espacio de nombres Descripción

•Las clases derivadas de Connection se utilizan para realizar la conexión y enviar y recibir información.
•Las clases derivadas de Command permiten ejecutar sentencias SQL y procedimientos almacenados en el gestor de datos.
•Las clases derivadas de DataReader se emplean para obtener los posibles resultados de un comando utilizando para ello el conducto de comunicación establecido por Connection.

continúe leyendo…

Podemos hacerlo con Shell, en mi caso yo lo hice con Shell, monté un fomulario con un textbox donde recogía el comando y un botón ejecutar.
(También puse una label para saber por donde pasaba, pues es muy vulnerable a errores).

Esto es el código que está en el evento click del botón:

 Sub Button1Click(sender As Object, e As EventArgs)
     ‘Shell(”cmd”, AppWinStyle.NormalFocus) - Opciones de shell
  try
  Shell(contenidoCaja)
  label1.Text=”…todo bien” 
  Catch noHayNada As System.NullReferenceException
   label1.Text=”Escribe algo, membrillo”
  Catch comandoErroneo As System.IO.FileNotFoundException
   label1.Text=”Debe ser un comando valido de ms-dos”
  Catch Errores As Exception
   label1.Text=”Ni idea, algo ha fallado”    
  End Try 
 End Sub

Le he puesto un control de errores pues, si lo dejas vacio o con cualquier problema de sintaxis da error y te saca del programa. Comentar que con Shell no se puede capturar lo que devuelve ms-Dos.

Para poder ejecutar comandos y capturar lo que devuelve tendríamos que realizarlo con:
  ProcessStartInfo()
 y capturarlo en un
 System.IO.StreamReader = x.StandardOutput
Cuando yo lo probé me funcionó para algunos comandos de msdos pero no para los que yo quería.
Os pongo un enlace a una web con un ejemplo:
http://micsharp.wordpress.com/2008/08/14/capturar-salida-de-un-proceso-cmd-ping/