Gewusst wie: Verwenden Basisklassen zur Senkung der Verzweigung mit Code Anbieter in Visual c# .NET verwalteten

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 313304 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Alles erweitern | Alles schließen

Auf dieser Seite

Zusammenfassung

Verwenden Sie dieses detaillierte Handbuch, um Informationen zum Basisklassen verwenden, um Code mit verwalteten Anbietern Verzweigung zu reduzieren.

Beschreibung der Technik

ADO.NET verfügt über verschiedene Arten von Datenanbietern (z. B. SqlClient, OleDb, ODBC und usw.). Wenn Sie den falschen-.NET-Datenanbieter, auswählen Wenn Sie eine Anwendung entwickeln, Sie sind in mithilfe des Anbieters gesperrt, oder Sie müssen möglicherweise häufig Code schreiben. Um dieses Problem zu vermeiden, können Sie Basisklassen verwenden.

Beispielsweise erben die Klassen SqlDataAdapter , OleDbDataAdapter und OdbcDataAdapter aus der DbDataAdapter -Klasse, die wiederum von der System.Data.Common.DataAdapter -Klasse erbt. Sie können eigenen Klasse oder Funktion, die die übergeordnete Klasse ( DataAdapter ) verwendet statt der geerbten Klasse (wie SqlDataAdapter , OleDbDataAdapter und OdbcDataAdapter ) erstellen. Die Funktion gibt eine allgemeine Objekt oder Schnittstelle, die Provider-unabhängig ist. Auf diese Weise können Sie den Code für einen bestimmten Anbieter eine allgemeine Funktion oder Klasse isolieren und Ihrer Anwendung schreiben, sodass es für alle Anbieter generisch ist.

Weitere Informationen zu Vererbung in Visual c# .NET finden folgendem Artikel der Microsoft Knowledge Base:
307205Verwendung von Vererbung in c#
Veranschaulicht das Verfahren in diesem Artikel, wie mit die IDataAdapter -Schnittstelle akzeptiert .NET Provider bestimmte DataAdapter .

Hinweis : die bevorzugte Methode zum Code Gabelung ist, die IDataAdapter -Schnittstelle verwenden, wenn die DbDataAdapter -Klasse vererben. Anderen bevorzugten Schnittstellen Inclue IDBConnection , IDBCommand und die IDataReader .

Voraussetzungen

Im folgenden werden die empfohlene Hardware, Software, Netzwerkinfrastruktur, Fähigkeiten und Kenntnisse und Servicepacks, die Sie müssen:
  • Microsoft Windows 2000 Professional, Microsoft Windows 2000 Server, Microsoft Windows 2000 Advanced Server oder Microsoft Windows NT 4.0 Server
  • Microsoft Visual Studio .NET
  • ODBC .NET Data Provider
  • Microsoft SQL Server 7.0 oder höher
Die folgenden Punkte beschreiben, über welche Vorkenntnisse Sie verfügen sollten, bevor Sie die in diesem Beitrag behandelten Informationen verwenden.
  • Microsoft Visual Studio .NET
  • Microsoft ADO.NET Grundlagen und syntax

Erstellen eines Projekts und Hinzufügen von Code

Das folgende Beispiel erläutert die IDataAdapter -Schnittstelle verwenden, um Code Aufspaltung von System.Data.OleDb.OledbDataAdapter , System.Data.SqlClient.SqlDataAdapter und Microsoft.Data.Odbc.OdbcDataAdapter zu reduzieren.
  1. Starten Sie Visual Studio .NET.
  2. Erstellen Sie eine neue Windows-Anwendung in Visual C# .NET.
  3. Stellen Sie sicher, dass das Projekt einen Verweis auf den System.Data -Namespace enthält, ist dies nicht der Fall fügen Sie einen Verweis hinzu.
  4. Fügen Sie Verweise auf Microsoft.Data.Odbc.dll .Weitere Informationen zum ODBC .NET Managed Provider finden Sie in folgendem Artikel der Microsoft Knowledge Base:
    310988So wird 's gemacht: Verwenden der ODBC .NET Managed Provider in Visual c# .NET und Verbindungsstrings
  5. Platzieren Sie eine Schaltfläche , ein DataGrid und drei RadioButton -Steuerelemente auf Form1.
    • Ändern Sie die Name -Eigenschaft der Schaltfläche auf BtnTest und die Text -Eigenschaft zu Testen .
    • Ändern Sie die Name -Eigenschaft des ersten RadioButton in RbSqlClient und die Eigenschaft Text auf SQL .
    • Ändern Sie die Name -Eigenschaft des zweiten RadioButton in RbOledb und die Text -Eigenschaft auf OLEDB .
    • Ändern Sie die Name -Eigenschaft des dritten RadioButton in RbOdbc und die Text -Eigenschaft in ODBC .
  6. Verwenden Sie die Verwendung von Anweisung für die Namespaces, damit Sie keine Deklarationen in diesen Namespaces später im Code vornehmen müssen. Fügen Sie im Abschnitt "Allgemeine Deklarationen" des Form1 den folgenden Code:
    using System.Data;
    using System.Data.Common;
    using System.Data.OleDb;
    using System.Data.SqlClient;
    using Microsoft.Data.Odbc;
    					
  7. Geben oder fügen Sie den folgenden Code im Bereich "Allgemeine Deklarationen":
    IDataAdapter da;
    DataSet ds = new DataSet();
    					
  8. Erstellen Sie eine DataAdapterFactory -Funktion, die den folgenden Code enthält:
    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. Geben oder fügen den folgenden Code in das BtnTest Click -Ereignis:
    da = DataAdapterFactory();
    da.Fill(ds);
    dataGrid1.DataSource = ds ;
    					
  10. Ändern Sie die Verbindungszeichenfolgen entsprechend Ihrer Umgebung.
  11. Speichern Sie Ihr Projekt. Klicken Sie im Menü Debuggen auf Starten , um das Projekt auszuführen.
  12. Wählen Sie den verwalteten Provider, den Sie verwenden möchten für die Verbindung, und klicken Sie dann (Test).

    Das DataGrid zeigt die von der Abfrage zurückgegebenen Daten an.

Problembehandlung

Bei Verwendung von Basisklassen verloren providerspezifischen Funktionen.

Informationsquellen

Weitere Informationen über ADO.NET-Objekte und-Syntax finden Sie in der Dokumentation zu Microsoft .NET Framework SDK oder MSDN Online:
Datenzugriff mit ADO.NET
http://msdn.microsoft.com/en-us/library/e80y5yhx(vs.71).aspx
Weitere Informationen zu .NET managed Provider finden Sie in der .NET Developer Center oder der folgenden Microsoft-Website:
In .NET Managed Provider
http://msdn.microsoft.com/en-us/library/ms810268.aspx

Eigenschaften

Artikel-ID: 313304 - Geändert am: Sonntag, 13. Mai 2007 - Version: 3.4
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft ADO.NET 1.0
  • Microsoft ADO.NET 1.1
  • Microsoft Visual C# .NET 2002 Standard Edition
  • Microsoft Visual C# .NET 2003 Standard Edition
Keywords: 
kbmt kbhowtomaster kbsqlclient kbsystemdata KB313304 KbMtde
Maschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 313304
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns

 

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