Prüfen ob ID in Datenbank vorhanden

  • VB.NET

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von BeefyX.

    Prüfen ob ID in Datenbank vorhanden

    Hi leute,

    ich versuche hier eine ID zu prüfen, befor sie in db gesucht wird.

    VB.NET-Quellcode

    1. Dim sqlString_2 As String = "SELECT count(*) FROM OV WHERE (kundennummer='" & tb_kundennummer.Text & "')"
    2. Dim cmd_2 As New OleDbCommand(sqlString_2, con)
    3. If cmd_2.ExecuteNonQuery() = 0 Then
    4. MsgBox("Die Kundennummer ist falsch oder existiert nicht!")
    5. Exit Sub
    6. End If


    nur es funktioniert nicht ganz. es wird immer die msgbox ausgegeben.

    ich glaube ich steh etwas auf dem schlauch.

    Könnt ihr mir weiter helfen?

    Gruß
    weedl89
    Hallo weedl89,

    da du nicht angegeben hast um welchen Datenbaktyp es sich handelt, poste ich einfach mal ein Beispiel - wie ich es mache - für MSSQL

    VB.NET-Quellcode

    1. Dim sql As String = "SELECT * From Gaestebuch ORDER BY G_Datum DESC;"
    2. conn.Open()
    3. Dim cmd As New SqlCommand(sql, conn)
    4. Dim r As SqlDataReader = cmd.ExecuteReader()
    5. If r.HasRows = True Then

    Gruss

    mikeb69
    Ich verwende eine access datenbank.

    ich habe deinen vorschlag jetzt umgeschrieben:

    VB.NET-Quellcode

    1. Dim sqlString_2 As String = "SELECT count(*) FROM OV WHERE (kundennummer='" & tb_kundennummer.Text & "')"
    2. Dim cmd_2 As New OleDbCommand(sqlString_2, con)
    3. Dim r As OleDbDataReader = cmd_2.ExecuteReader()
    4. If r.HasRows = False Then
    5. MsgBox("Die Kundennummer ist falsch oder existiert nicht!")
    6. Exit Sub
    7. End If


    nur leider funktioniert es nicht.
    Ich machs so

    VB.NET-Quellcode

    1. con.Open()
    2. cmd.CommandText = "SELECT COUNT(*) AS anzahl FROM Mitarbeiter WHERE upper(Personalnummer) ='" & UCase(CStr(pnr)) & "'"
    3. reader = cmd.ExecuteReader()
    4. reader.Read()
    5. pnum = CStr(reader("anzahl"))
    6. reader.Close()
    7. con.Close()
    8. If CDbl(pnum) = 1 Then

    VB.NET-Quellcode

    1. Dim sqlquery as STring = "SELECT * FROM OV WHERE Kundennummer = '" & tb_kundennummer.text & "'"
    2. Dim reader as oledbdatareader
    3. Dim conn as new oledbconnection
    4. dim cmd as new oledbcommand
    5. dim serverstring as String = "provier=microsoft.jet.oledb.4.0;data source=PFADDERDB"
    6. cmd.connection = conn
    7. conn.connectiontring = Serverstring
    8. conn.open
    9. cmd.commandtext = sqlquery
    10. reader = cmd.executereader
    11. if reader.hasrows = true then msgbox("Existiert")
    12. else
    13. msgbox("Existiert nicht!")
    14. end if


    so mach ich es immer
    Wo wir schon dabei sind, ich weiss das hat vielleicht nichts mit dem Thema zu tun aber nur mal so:
    Um 00:00:00 bekomme ich bei MySQL Verbindungen immer(!) "Server out of sync" bzw. Fehlercode 2006.
    (Benutzer .NET MySQL Connector 5)

    #B2T

    Query dürfte so aussehen:

    SQL-Abfrage

    1. SELECT COUNT(*) FROM `TABLE` WHERE `COLUMN`='VALUE';


    (Immer Escape String verwenden bitte :])

    #OT
    MySql ist nicht die einzigste Datenbank software die SQL verwendet. Wieso soll ich also mysql tag verwenden? [ sql ] würds auch tun..
    Und.. wie ich sehe war ich zu spät mitm post :D