Announcement

Collapse
No announcement yet.

OleDbDataAdapter Fehler

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • OleDbDataAdapter Fehler

    Hallo zusammen,

    ich würde gerne ein kleinen Login mit der Hilfe von OleDbDataAdapter bauen. Leider geht das unten genannte Beispiel nicht, da folgende Fehlermeldung aufkommt "Problembehandlung bei Ausnahmen: System.NullReferenceException"

    Kommentar seitens Microsoft hierzu "NullReferenceException wird bei dem Versuch ausgelöst, im Code auf ein nicht vorhandenes Objekt zu verweisen. Möglicherweise haben Sie versucht, ein Objekt zu verwenden, ohne vorher das New-Schlüsselwort zu verwenden. Oder Sie haben versucht, ein Objekt zu verwenden, dessen Wert auf NULL (in Visual Basic: Nothing) festgelegt war.
    [...] Sie haben möglicherweise versucht, ein Objekt zu verwenden, ohne eine Instanz des Objekts bereitzustellen. Ändern Sie zum Beispiel Dim CustomerTable As DataTable in Dim CustomerTable As New DataTable."

    Leider werde ich daraus auch nicht schlauer, hier mein Code:
    ---------------------------------------------------------
    [highlight=vbnet]
    Dim con As New OleDb.OleDbConnection
    Dim cmd As New OleDb.OleDbCommand
    Dim adapter As New OleDb.OleDbDataAdapter
    Dim ds As New DataSet

    Private Sub OK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
    Handles OK.Click
    con.ConnectionString = _
    "Provider=Microsoft.ACE.OLEDB.12.0;" & _
    "Data Source=" & CurDir() & "\DB_Kundeninformationen.accdb"
    Try
    cmd.Connection = con
    con.Open()
    cmd.CommandText = "SELECT * FROM Benutzerdaten WHERE Benutzername = '" _
    & txtLogin.Text & "' AND Passwort = '" & txtKennwort.Text & "'"
    adapter.SelectCommand = cmd
    adapter.Fill(ds)
    If ds.Tables(0).Rows.Count > 0 Then
    pnlLogin.Hide()
    pnlHautpmenueAdmin.Show()
    Else
    MsgBox("Leider ist die eingegebene Kombination nicht bekannt.", _
    MsgBoxStyle.Critical)

    End If
    con.Close()
    Catch ex As Exception
    MsgBox(ex.Message)
    End Try
    End Sub[/highlight]
    ---------------------------------------------------------

    Ich bin kein Experte, der Code oben scheint mir logisch, doch wo ist der Fehler?

    Ich würde mich sehr freuen. Beste Grüße!
    Zuletzt editiert von Jürgen Thomas; 06.06.2010, 17:41. Reason: [highlight=vbnet] eingefügt, künftig bitte selbst erledigen! Außerdem lange Zeilen vermeiden.

  • #2
    Beim debuggen sollte deine Entwicklungsumgebung an der problematischen Stelle mit einer Exception halten. Also solltest du genau das versuchen ... deinen Code zu debuggen.

    Konkretere Hilfe bekommst du vielleicht wenn du deinen Code vernünftig formatierst so das man sich denn auch ansehen kann. Wie das geht steht zum Beispiel hier.

    Comment


    • #3
      Hallo Ralf,

      danke für die schnelle Antwort. Die oben beschriebenen Infos entstammen aus dem Debug-Modus, sagen mir aber nicht viel.

      LG

      Comment


      • #4
        Hallo und willkommen,

        um das Debuggen kommst du nicht herum. Wir wollen genau wissen, in welcher Zeile der Fehler auftritt, sonst können wir nicht helfen.

        Ein paar Hinweise kann ich aber geben:
        1. Eine DbConnection sollte niemals dauerhaft erzeugt werden, sondern immer nur dort und solange sie benötigt wird. Dazu wird sie am besten in einen Using-Block gepackt.
        2. Für DbDataAdapter und DbCommand gilt im Prinzip das gleiche. Es genügt aber, dies innerhalb des Using-Blocks für die DbConnection zu erzeugen.
        3. Ein SELECT sollte niemals per String-Addition mit variablen Inhalten verknüpft werden, sondern immer mit SQL-Parametern.
        4. con.Open und con.Close können entfallen, das macht adapter.Fill automatisch.
        5. Was pnlLogin und pnlHautpmenueAdmin sind, verschweigst du uns.

        Zur Einführung in ADO.NET siehe z.B. [openbook] visualbasic 2008 Kap. 23 ff., zu den Parametern Kap. 24.3.

        Gruß Jürgen

        PS. Fragen zur Datenbank-Anbindung gehören ins Unterforum ADO.NET; deshalb verschiebe ich die Diskussion.

        Comment

        Working...
        X