COMO: Utilizar classes base diminuir bifurcação com código gerido fornecedores no Visual C# .NET

Traduções de Artigos Traduções de Artigos
Artigo: 313304 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Nesta página

Sumário

Utilize este guia passo-a-passo para aprender a utilizar classes base para reduzir o código de bifurcação com fornecedores geridos.

Descrição da técnica

ADO.NET tem diferentes tipos de fornecedores de dados (por exemplo, SqlClient, OleDb, ODBC e assim sucessivamente). Se escolher o fornecedor de dados .NET errado quando desenvolver uma aplicação, é bloqueados no utilizando o fornecedor ou pode ter para extensivamente reescrever o código. Para evitar este problema, pode utilizar classes base.

Por exemplo, as classes SqlDataAdapter OleDbDataAdapter e OdbcDataAdapter tudo herdam da classe DbDataAdapter que por sua vez herda da classe System.Data.Common.DataAdapter . Pode criar os seus classe ou função que utiliza a classe principal ( ' DataAdapter ' ) em vez de classe herdada (como SqlDataAdapter , OleDbDataAdapter e OdbcDataAdapter ). A função devolve um objecto ou a interface é independente do fornecedor comuns. Desta forma, pode isolar o código específica do fornecedor para uma função ou classe comuns e escrever a aplicação para que fique genérico para todos os fornecedores.

Para obter informações adicionais sobre herança no Visual C# .NET, clique no número de artigo existente abaixo para visualizar o artigo na base de dados de conhecimento da Microsoft:
307205COMO: Utilizar herança em C#
O procedimento descrito neste artigo demonstra como utilizar a interface IDataAdapter para aceitar qualquer fornecedor .NET específico ' DataAdapter ' .

Nota : O método preferido para código bifurcação consiste em utilizar a interface IDataAdapter quando herdar da classe DbDataAdapter . Outra interfaces preferencial inclue IDBConnection IDBCommand e IDataReader .

Requisitos

Os seguintes itens descrevem o hardware recomendado, software, infra-estrutura de rede, competências e conhecimentos e service packs, terá de:
  • Microsoft Windows 2000 Professional, Microsoft Windows 2000 Server, Microsoft Windows 2000 Advanced Server ou Microsoft Windows NT 4.0 Server
  • Microsoft Visual Studio .NET
  • Fornecedor de dados ODBC .NET
  • Microsoft SQL Server 7.0 ou posterior
Os seguintes itens descrevem o que deve compreender para poder utilizar as informações fornecidas neste artigo.
  • Microsoft Visual Studio .NET
  • Microsoft ADO.NET fundamentais e sintaxe

Criar projecto e adicionar código

O exemplo seguinte explica como utilizar a interface IDataAdapter para reduzir código bifurcação System.Data.OleDb.OledbDataAdapter , System.Data.SqlClient.SqlDataAdapter e Microsoft.Data.Odbc.OdbcDataAdapter .
  1. Inicie o Visual Studio NET..
  2. Criar uma nova aplicação do Windows no Visual C#. NET.
  3. Certifique-se que o projecto contém uma referência ao espaço de nomes System.data ; adicionar uma referência, caso contrário.
  4. Adicione referências a Microsoft.Data.Odbc.dll .Para obter informações adicionais sobre o fornecedor gerido do ODBC .NET, clique no número de artigo existente abaixo para visualizar o artigo na base de dados de conhecimento da Microsoft:
    310988COMO: Utilizar o fornecedor de gestão ODBC .NET no Visual C# .NET e cadeias de ligação
  5. Colocar um botão , um DataGrid e três controlos do tipo ' botão de opção ' no Form1.
    • Altere a propriedade nome do botão para btnTest e a propriedade de texto para teste .
    • Altere a propriedade Name do primeiro tipo ' botão de opção ' rbSqlClient e a propriedade de texto para O cliente de SQL .
    • Altere a propriedade Name do segundo tipo ' botão de opção ' rbOledb e a propriedade de texto para OLEDB .
    • Altere a propriedade nome do terceiro RadioButton rbOdbc e a propriedade de texto para ODBC .
  6. Utilize a instrução utilizando os espaços de nomes para que não é necessário para qualificar declarações os espaços de nomes mais tarde no código. Adicione o seguinte código à secção "General Declarations" do Form1:
    using System.Data;
    using System.Data.Common;
    using System.Data.OleDb;
    using System.Data.SqlClient;
    using Microsoft.Data.Odbc;
    					
  7. Escreva ou cole o seguinte código na área de "General Declarations":
    IDataAdapter da;
    DataSet ds = new DataSet();
    					
  8. Criar uma função DataAdapterFactory que contenha o seguinte código:
    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. Escreva ou cole o seguinte código no evento Click btnTest:
    da = DataAdapterFactory();
    da.Fill(ds);
    dataGrid1.DataSource = ds ;
    					
  10. Modificar as cadeias de ligação conforme apropriado para o ambiente.
  11. Guarde o projecto. No menu Debug , clique em Iniciar para executar o projecto.
  12. Seleccione o fornecedor gerido que pretende utilizar para a ligação e, em seguida, clique o botão (teste).

    DataGrid apresenta os dados devolvidos pela consulta.

Resolução de problemas

Se utilizar classes base, poderá perder funcionalidades específicas do fornecedor.

Referências

Para mais informações sobre objectos ADO.NET e sintaxe, consulte a documentação do Microsoft .NET Framework SDK ou online da MSDN:
Acessando dados com o ADO.NET
http://msdn.microsoft.com/en-us/library/e80y5yhx(vs.71).aspx
Para mais informações sobre fornecedores de .NET gerido, consulte o .NET Developer Center ou o seguinte Web site da Microsoft:
Dentro do .NET geridos fornecedores
http://msdn.microsoft.com/en-us/library/ms810268.aspx

Propriedades

Artigo: 313304 - Última revisão: 13 de maio de 2007 - Revisão: 3.4
A informação contida neste artigo aplica-se 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
Palavras-chave: 
kbmt kbhowtomaster kbsqlclient kbsystemdata KB313304 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 313304

Submeter comentários

 

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