none
ADODB.Connection + ADODB.Recordset RRS feed

  • Frage

  • Hallo Entwickler,
    ich habe ein Problem mit meinem Code:

    Private Sub cboBTWellenNr_Click(sender As Object, e As System.EventArgs) Handles cboBTWellenNr.Click
            Dim rs As New ADODB.Recordset
            Dim db As New ADODB.Connection
            Dim strPfad As String
            Dim strSQL As String
            Dim strBTWellenNr As String
            strPfad = txtDB.Text
            strBTWellenNr = cboBTWellenNr.Text
            strSQL = "SELECT Gruppe, Kunde FROM Radsatz WHERE BTWellenNr =  '" & strBTWellenNr & "'"
            db.open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strPfad & "")
            rs.open(strSQL)
            Do Until rs.eof
                Me.txtKunde = rs.fields("Kunde")
                rs.movenext()
            Loop
            rs.close()
            db.close()
            rs = Nothing
            db = Nothing
        End Sub
    End Class

    Ich bekomme folgende Fehlermeldung:

    Namespace ADODB
        Class Connection
            Sub open(p1 As Object)
                Throw New NotImplementedException
            End Sub
            Sub close()
                Throw New NotImplementedException
            End Sub
        End Class
    End Namespace

    Fehler: Throw New NotImplementedException

    Die Klassen Connection + Recordset sind doch richtig instanziiert?

    Grusse ro_grille


    Lebe Dein Leben beständig, Du bist länger Tod als lebendig.

    Samstag, 27. Oktober 2012 12:47

Antworten

  • Hi,
    die Frage ist etwas unklar. Wichtig ist, dass man die Grundbausteine versteht: Connection, Command, Parameter, DataReader, DataAdapter. Und dann braucht man ggf. noch Datenpuffer (Inline-Datenbank). Als Datenpuffer kann eine DataTable dienen, ggf. enthalten in einem DataSet. Der TableAdapter kapselt wiederum eine DataAdapter. Die BindingSource kapselt DataView und CurrencyManager. EDM und EF sind andere Techniken zur Organisation der Datenpuffer.
     
    --
    Viele Gruesse
    Peter
    • Als Antwort markiert ro_grille Montag, 29. Oktober 2012 16:49
    Sonntag, 28. Oktober 2012 18:04

Alle Antworten

  • Hi,
    es gibt mehrere Bemerkungen meinerseits:
     
    1. in VB.NET gibt es die System.Data- und System.Data.OleDb-Namensräume mit entsprechend angepassten Klassen und Methoden. Ds klassische ADO braucht man dazu nicht mehr.
    2. Dein Recordset kennt die Verbindung zur Datenbank (Dein db) nicht.
    3. Verkettete SQL-Anweisungen bergen die Gefahr der SQL Injection und sollten zugunsten der Nutzung von Parameter-Objekten ausgetauscht werden.
     
    Hier ein paar Anregungen von meiner Homepage: http://www.informtools.de/kb.aspx?ID=138
     
    --
    Viele Gruesse
    Peter
    Samstag, 27. Oktober 2012 14:07
  • Hallo Peter,
    vielen Dank für die schnelle Antwort.
    Deine Seite ist in meinen Favoriten. Beim schnellen Blick, tolle Tipps- und Tricks mit einer Menge Code ;-)
    Werde sicher was finden und zusammen basteln können ^^.

    Eine Frage bezüglich des Abfragegenerator vom DataSet/Tableadapter-Abfragen hätte ich noch.

    Kann man in diesem auch mit Variablen und Objekten arbeiten, oder beschränkt sich der Tableadapter "nur" auf das Datset?

    Bsp. "SELECT Artikel, Kunde FROM Produkt WHERE Artikel = '" & Me.cboArtikel & "'"

    Grusse ro_grille


    Lebe Dein Leben beständig, Du bist länger Tod als lebendig.

    Sonntag, 28. Oktober 2012 07:52
  • Hi,
    die Frage ist etwas unklar. Wichtig ist, dass man die Grundbausteine versteht: Connection, Command, Parameter, DataReader, DataAdapter. Und dann braucht man ggf. noch Datenpuffer (Inline-Datenbank). Als Datenpuffer kann eine DataTable dienen, ggf. enthalten in einem DataSet. Der TableAdapter kapselt wiederum eine DataAdapter. Die BindingSource kapselt DataView und CurrencyManager. EDM und EF sind andere Techniken zur Organisation der Datenpuffer.
     
    --
    Viele Gruesse
    Peter
    • Als Antwort markiert ro_grille Montag, 29. Oktober 2012 16:49
    Sonntag, 28. Oktober 2012 18:04