Announcement

Collapse
No announcement yet.

Suchfunktion mit VB.net

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

  • Suchfunktion mit VB.net

    Guten Tag liebe VB.net Freunde,

    ich habe die Suchfunktion hier im Forum benutzt und nicht wirklich etwas zu meinem Thema gefunden, also stelle ich mal meine Frage:

    Wie der Titel schon vermuten lässt, will ich eine Suchfunktion mit VB.net programmieren.

    Zum Status Quo:
    Ich habe eine Access Datenbank, auf der ich mit VB.net zugreife, die Suchfunktion wird also im simplen VB.net Code und SQL abfragen gemacht.
    Desweiteren habe ich ein Formular mit z.B.: 2 Textfelder und 2 Dropdownlisten
    Die Oberfläche ist ASP

    Man soll natürlich die Möglichkeit haben nach nur einem Kriterium zu suchen oder nach allen vieren usw..

    Ich hatte mir sowas gedacht:

    Code:
       SQL = "SELECT * FROM TICKETS WHERE"
    
            If DropDownList3.SelectedValue.Length > 0 Then
                SQL += _
                    " Status = '" & DropDownList3.SelectedValue & "'AND "
                set_and = True
            End If
    
            If DropDownList4.SelectedValue.Length > 0 Then
                SQL += _
                " SubStatus = '" & DropDownList4.SelectedValue & "'"
            End If
    
            If SR.Text.Length > 0 Then
                SQL += _
                "AND 'SR = " & SR.Text & "'"
                set_and = True
            End If
    
            If SoftwareVersion.Text.Length > 0 And set_and = True Then
                SQL += _
                " AND SoftwareVersion = '" & SoftwareVersion.Text & "'"
                set_and = True
            End If
    Das macht aber nicht wirklich Sinn, da immer ein "AND" ran gehangen wird, auch wenn kein Kriterium mehr folgt -> Somit entsteht ein abfrage Fehler.
    Man müsste das irgendwie so machen, dass das "AND" nur ran gehangen wird, wenn wirklich ein weiteres Suchkriterium folgt.

    Vielleicht ist der Ansatz auch einfach nur doof und es geht anders viel einfacher.

    Ich hoffe ihr könnt mir da weiterhelfen.


    Liebe Grüße
    proark

  • #2
    Hallo,

    ohne mich jetzt mit der Suchfunktion auseinandergesetzt haben ist dein Ansatz nicht sicher.

    Ein zur Laufzeit erstellter String für SQL ist nicht sicher gegen SQL-Injektion. Somit könnte ein Bösewicht als Suchtext zB eingeben:
    Code:
    blabla'; GO EXEC cmdshell('format C')--
    Das wäre nicht gut.

    D.h. auf jeden Fall eine parametrisierte Abfrage verwenden!

    mfG Gü
    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

    Comment


    • #3
      Originally posted by gfoidl View Post
      Ein zur Laufzeit erstellter String für SQL ist nicht sicher gegen SQL-Injektion. Somit könnte ein Bösewicht als Suchtext zB eingeben:
      Wollte ich gerade anmerken. Aber bei ASP/ASP.NET gehört das ja zum guten Ton die Grundlagen von Sicherheit bezüglich SQL zu vergessen :-)
      Und wenn jemand sagt das MS hier nicht schuld ist: Sun baut seine SQL-Beispiele bei Java so auf das eigentlich immer parametrisierte Abfragen verwendet werden, Microsoft nicht!

      Comment


      • #4
        Ok, das werde ich noch beachten, obwohl es eig. in dem Fall egal ist, wird nur mir vertrauten usern möglich sein darauf zuzugreifen.

        Kann mir nun jemand bei meinem Problem behilflich sein?

        Liebe Grüße
        proark

        Comment

        Working...
        X