Cómo: Utilizar clases base para reducir la bifurcación con el código administrado proveedores en Visual C# .NET

Seleccione idioma Seleccione idioma
Id. de artículo: 313304 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

En esta página

Resumen

Utilice a esta guía paso a paso para aprender a utilizar las clases base para reducir la bifurcación con los proveedores administrados de código.

Descripción de la técnica

ADO.NET tiene diferentes tipos de proveedores de datos (por ejemplo, SqlClient, OleDb, ODBC y así sucesivamente). Si elige el proveedor de datos .NET incorrecto cuando desarrolla una aplicación, se bloquean en mediante el proveedor o que haya ampliamente volver a escribir su código. Para evitar este problema, puede utilizar las clases base.

Por ejemplo, las clases de SqlDataAdapter , OleDbDataAdapter y OdbcDataAdapter todo se heredan de la clase DbDataAdapter que a su vez hereda de la clase de System.Data.Common.DataAdapter . Puede crear nuestra propia clase o función que utiliza la clase primaria ( DataAdapter ) en lugar de la clase heredada (como SqlDataAdapter , OleDbDataAdapter y OdbcDataAdapter ). La función devuelve un objeto o interfaz que es independiente del proveedor común. De esta forma, puede aislar el código específico del proveedor para una clase o función común y escribir la aplicación para que sea genérica a todos los proveedores.

Para obtener información adicional acerca de la herencia en Visual C#. NET, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
307205Cómo: Utilizar la herencia en C#
El procedimiento en este artículo muestra cómo utilizar la interfaz IDataAdapter para aceptar cualquier proveedor de .NET específico de DataAdapter .

Nota : el método preferido para la bifurcación de código es utilizar la interfaz IDataAdapter al heredar de la clase DbDataAdapter . Otro inclue interfaces preferido IDBConnection IDBCommand y la IDataReader .

Requisitos

Los elementos siguientes describen el hardware, el software, la infraestructura de red, las capacidades, el conocimiento y los service pack recomendados que se necesitan:
  • Microsoft Windows 2000 Professional, Microsoft Windows 2000 Server, Microsoft Windows 2000 Advanced Server o Microsoft Windows NT 4.0 Server
  • Microsoft Visual Studio .NET
  • Proveedor de datos ODBC .NET
  • Microsoft SQL Server 7.0 o posterior
Los siguientes elementos describen lo que debe comprender antes de utilizar la información proporcionada en este artículo.
  • Microsoft Visual Studio .NET
  • Microsoft ADO.NET Fundamentos y sintaxis

Crear un proyecto y agregar código

En el ejemplo siguiente se explica cómo utilizar la interfaz IDataAdapter para reducir el código bifurcación desde System.Data.OleDb.OledbDataAdapter , System.Data.SqlClient.SqlDataAdapter y Microsoft.Data.Odbc.OdbcDataAdapter .
  1. Inicie Visual Studio NET..
  2. Cree una nueva aplicación para Windows en Visual C# .NET.
  3. Asegúrese de que el proyecto contiene una referencia al espacio de nombres System.Data ; agregar una referencia si no existe.
  4. Agregue referencias a Microsoft.Data.ODBC.dll .Para obtener información adicional acerca del proveedor administrado de .NET de ODBC, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
    310988Cómo: Utilizar el proveedor administrado ODBC .NET en C# .NET y cadenas de conexión
  5. Coloque un botón , un control DataGrid y tres controles RadioButton en Form1.
    • Cambie la propiedad Name del botón a btnTest y la propiedad Text a prueba .
    • Cambie la propiedad Name de la primera RadioButton a rbSqlClient y la propiedad Text al Cliente de SQL .
    • Cambie la propiedad Name de la segunda RadioButton a rbOledb y la propiedad Text para OLEDB .
    • Cambie la propiedad Name de la tercera RadioButton a rbOdbc y la propiedad Text a ODBC .
  6. Utilice la instrucción using de los espacios de nombres para que no se pida calificar declaraciones en esos espacios de nombres más adelante en el código. Agregue el código siguiente a la sección "General Declarations" de Form1:
    using System.Data;
    using System.Data.Common;
    using System.Data.OleDb;
    using System.Data.SqlClient;
    using Microsoft.Data.Odbc;
    					
  7. Escriba o pegue el código siguiente en el área de "General Declarations":
    IDataAdapter da;
    DataSet ds = new DataSet();
    					
  8. Crear una función DataAdapterFactory que contiene el código siguiente:
    public IDataAdapter DataAdapterFactory()
    {
    	String myConnString; 
    	String myQuery  = "Select * From Customers";
    
    	if (rbSqlClient.Checked)
    	{
    		//Using SqlClient
    		myConnString = "server=myserver;integrated security=sspi;database=Northwind";
    		SqlConnection mycon = new SqlConnection(myConnString);
    		SqlDataAdapter daCust = new SqlDataAdapter(myQuery, mycon);
    		return daCust;
    	}
    	else if (rbOledb.Checked)
    	{
    		//Using OleDb
    		myConnString = "Provider=SqlOledb.1;Data Source=myserver;integrated security=SSPI;Database=Northwind";
    		OleDbConnection mycon = new OleDbConnection(myConnString);
    		OleDbDataAdapter daCust = new OleDbDataAdapter(myQuery, mycon);
    		return daCust;
    	}															   
    	else if (rbOdbc.Checked)
    	{
    		//Using Odbc
    		myConnString = "Driver={SQL Server};Server=myserver;trusted_connection=yes;database=Northwind";
    		Microsoft.Data.Odbc.OdbcConnection mycon = new Microsoft.Data.Odbc.OdbcConnection(myConnString);
    		OdbcDataAdapter daCust = new OdbcDataAdapter(myQuery, mycon);
    		return daCust;
    	}
    	else
    	{
    		return null;
    	}																											  
    }
    					
  9. Escriba o pegue el código siguiente en el evento Click de btnTest:
    da = DataAdapterFactory();
    da.Fill(ds);
    dataGrid1.DataSource = ds ;
    					
  10. Modificar las cadenas de conexión según corresponda para su entorno.
  11. Guardar el proyecto. En el menú Depurar , haga clic en iniciar para ejecutar el proyecto.
  12. Seleccione el proveedor administrado que desea utilizar para la conexión y haga clic en botón (prueba).

    El control DataGrid muestra los datos devueltos por la consulta.

Solución de problemas

Si utiliza las clases base, puede perder funcionalidad específica de proveedor.

Referencias

Para obtener más información acerca de los objetos de ADO.NET y su sintaxis, consulte la documentación de Microsoft .NET Framework SDK o MSDN Online:
Acceso a datos con ADO.NET
http://msdn.microsoft.com/en-us/library/e80y5yhx(vs.71).aspx
Para obtener más información acerca de los proveedores administrados de .NET, consulte el .NET Developer's Center o el siguiente sitio Web de Microsoft:
Dentro de .NET administradas proveedores
http://msdn.microsoft.com/en-us/library/ms810268.aspx

Propiedades

Id. de artículo: 313304 - Última revisión: domingo, 13 de mayo de 2007 - Versión: 3.4
La información de este artículo se refiere a:
  • Microsoft ADO.NET 1.0
  • Microsoft ADO.NET 1.1
  • Microsoft Visual C# .NET 2002 Standard Edition
  • Microsoft Visual C# .NET 2003 Standard Edition
Palabras clave: 
kbmt kbhowtomaster kbsqlclient kbsystemdata KB313304 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 313304

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com