25.2 Initialisierung
Der DataAdapter muss wissen, auf welcher Verbindung er einen Befehl absetzen soll, und er muss selbstverständlich auch den Befehl kennen. Wird dies nicht im Konstruktor spezifiziert, muss die Eigenschaft SelectCommand entsprechend gesetzt werden.
25.2.1 Konstruktoren
Der DataAdapter stellt die Verbindung zwischen einer Datenquelle und einem DataSet bzw. einer DataTable her und füllt diese mit den angefragten Daten. Die DataAdapter-Klassen (OleDbDataAdapter, SqlDataAdapter, OracleDataAdapter und OdbcDataAdapter) verfügen jeweils über vier Konstruktoren. Das Xxx in der folgenden Syntax kann die korrespondierenden Werte OleDb, Sql, Oracle oder Odbc annehmen.
Public Sub New() Public Sub New(selectCommand As XxxCommand) Public Sub New(selectCommandText As String, connection As XxxConnection) Public Sub New(selectCommandText As String, connectionString As String) |
Konstruktor und Verbindungen
Wenn Sie in Ihrer Anwendung mehrere DataAdapter-Objekte verwenden, sollten Sie mit Bedacht den Konstruktor wählen. Wenn Sie den Konstruktoraufrufen der DataAdapter-Objekte nämlich eine Zeichenfolge übergeben, beispielsweise
Dim strCon As String = "Data Source=wsak\\SQL2005;" & _ "Initial Catalog=northwind;Trusted_Connection=Yes" Dim da1 As DbDataAdapter = New SqlDataAdapter(strSQL1, strCon) Dim da2 As DbDataAdapter = New SqlDataAdapter(strSQL2, strCon)
dann wird für jedes DataAdapter-Objekt eine neue Verbindung eingerichtet. War das von Ihnen beabsichtigt, gibt es daran nichts zu kritisieren. Reicht Ihnen aber eine Verbindung aus, sollten Sie stattdessen den Konstruktor verwenden, der neben der Abfragezeichenfolge die Referenz auf das Connection-Objekt erwartet, oder Sie sollten nach dem parameterlosen Konstruktor die Verbindung über die Eigenschaft SelectCommand festlegen.
25.2.2 Die Eigenschaft SelectCommand
Wenn Sie den parameterlosen Konstruktor verwenden, müssen Sie der Eigenschaft SelectCommand die Referenz auf ein Command-Objekt zuweisen.
Dim da As DbDataAdapter = New SqlDataAdapter()
da.SelectCommand = cmd
Die DataAdapter-Klassen stellen keine Möglichkeit bereit, mit der wir eine Verbindungszeichenfolge oder ein Connection-Objekt festlegen können. Das ist aber unwichtig, da das Command-Objekt seinerseits selbst alle Verbindungsinformationen enthält.
Dim strCon As String = "..." Dim con As SqlConnection = New SqlConnection(strCon) Dim cmd As DbCommand = New SqlCommand("SELECT * FROM Products", con)
Ihre Meinung
Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.