MSSQL SELECT Anweisung

  • VB.NET

Es gibt 28 Antworten in diesem Thema. Der letzte Beitrag () ist von picoflop.

    MSSQL SELECT Anweisung

    Hey,

    ich habe Probleme mit einer SELECT Anweisung auf meinen MSSQL Server.
    In meiner Datenbank sind mehrere Spalten.
    Accountname = sUserID
    Accountpasswort = sUserPW
    Authorisierungslevel = nAuthID
    Nachdem ich auf den Loginbutton geklickt habe soll er die nAuthID abfragen undzwar dort wo der TextBox1.Text = sUserID ist.
    Wie mache ich das am besten?

    Habe ein bisschen gegoogelt und habe im MSDN nachgeschaut, dort steht folgenes:

    VB.NET-Quellcode

    1. Private Sub ReadOrderData(ByVal connectionString As String)
    2. Dim queryString As String = _
    3. "SELECT OrderID, CustomerID FROM dbo.Orders;"
    4. Using connection As New SqlConnection(connectionString)
    5. Dim command As New SqlCommand(queryString, connection)
    6. connection.Open()
    7. Dim reader As SqlDataReader = command.ExecuteReader()
    8. ' Call Read before accessing data.
    9. While reader.Read()
    10. Console.WriteLine(String.Format("{0}, {1}", _
    11. reader(0), reader(1)))
    12. End While
    13. ' Call Close when done reading.
    14. reader.Close()
    15. End Using
    16. End Sub


    Bei mir steht folgenes:

    VB.NET-Quellcode

    1. Dim UserName As String = TextBox1.Text
    2. Dim Password As String = TextBox2.Text
    3. Dim con As SqlConnection = GetConnection()
    4. Dim cdo As New SqlCommand("SELECT sUserID, sUserPW, nAuthID FROM tUser WHERE sUserID ='" & UserName & "';", con)
    5. con.Open()
    6. Dim reader As SqlDataReader = cdo.ExecuteReader
    7. Dim UserSQL As String
    8. Dim PWSQL As String
    9. Dim AuthLev As String
    10. UserSQL = reader(0)
    11. PWSQL = reader(1)
    12. AuthLev = reader(2)
    13. If AuthLev = "9" Then
    14. Me.Hide()
    15. Main.Show()
    16. Else
    17. If MessageBox.Show("Error!", "Error...", MessageBoxButtons.OK, MessageBoxIcon.Warning) = vbOK Then
    18. Me.Close()
    19. End If
    20. End If


    Kann mir jemand sagen wo ich einen Fehler gemacht habe?
    Und sorry ich lern es noch, zum lernen gehören bekanntlich Fehler :)

    Mfg retecvb
    Was ist denn, wenn du die SQL-Anweisung über andere Wege ausführst, also über irgendein Datenbank-Administrationstool? Gibt es ein Ergebnis?
    Besucht auch mein anderes Forum:
    Das Amateurfilm-Forum
    Leider keine angabe...
    Habe es jetzt mit ExecuteScalar gemacht, läuft deutlich besser.

    Ich denke mal es ist möglich zu schauen ob es diesen einen Wert schon in einer Datenbanktabelle gibt.
    Wie frage ich nach sowas?
    Auch mit dem SELECT-Syntax? Wenn ja wie?

    Bin auch mit Denkanstößen zufrieden, will lernen nicht kopieren. :)
    Ich bin nicht sicher, ob ich verstanden habe, was du machen möchtest, aber evtl. hilft das:

    SQL-Abfrage

    1. select count(0) as anzahl from tabelle where id = 1


    Das Feld "anzahl" ist >0, wenn Datensätze mit der Bedingung existieren.
    Besucht auch mein anderes Forum:
    Das Amateurfilm-Forum
    Also was ich machen möchte ist:

    Ich gebe einen Namen in eine TextBox ein, klicke dann auf "Search" und das Event wird ausgelöst.
    In dem Event soll er zuerst überprüfen ob es eine Zeile mit diesem Namen gibt, wenn nicht dann wird eine MessageBox angezeigt die dem Anwender dann zeigt das der eingegebene Datensatz nicht in der Datenbank steht.
    Wenn sichergestellt wurde das der Name in der Datenbank existiert, dann soll er die anderen Werte abfragen (Charakterlevel, Geld des Charakters, Ruhm des Charakters usw.), das ist ja kein Problem mehr ab jetzt.
    Nur leider weiß ich nicht wie ich prüfen könnte ob der Charaktername in der Datenbank existiert.

    Habe mir PHP Codes angeschaut um eventuell einen Denkanstoß zu bekommen wie es klappen könnte, habe aber leider nichts gefunden, Google war auch nicht hilfreich (Leider).
    Also wüsstest du Eventuell mir zu helfen?
    Hi,

    die Zeilen werden nicht umsonst im MSDN Eintrag verwendet

    VB.NET-Quellcode

    1. '
    2. ' Call Read before accessing data.
    3. While reader.Read()
    4. Console.WriteLine(String.Format("{0}, {1}", _ reader(0), reader(1)))
    5. End While



    Du rufst ja auch keine Daten aus der Datenbank aber mit der Read-Funktion, dann kann natürlich der Reader auch nicht drauf zugreifen, deshalb gibt es die Exception.

    Gruß
    Naja, ich klick auf den Button, das Programm schaut ob es eine Zeile mit dem in der TextBox eingegebenen Namen gibt und liest, wenn ja, die ganzen Werte raus.

    Hätte jetzt an IF EXISTS gedacht, aber wüsste nicht wie ich das Resultat an VB.NET weiter geben sollte. :(
    Stimmt...
    Also der Command wäre dann:

    VB.NET-Quellcode

    1. Dim CharName As New SqlCommand("SELECT COUNT(0) AS sID FROM dbo.tCharacter WHERE sID='" & Character & "';", con)

    Richtig?

    Ich hab nur leider keine Idee wie ich den Wert aus dem Command raus bekomme um es in eine IF Abfrage zu legen...

    EDIT:
    Oh mein Gott ich bin so Doof...

    VB.NET-Quellcode

    1. Dim con As SqlConnection = GetConnection()
    2. Dim cdo As New SqlCommand("SELECT COUNT(0) AS sID FROM dbo.tCharacter WHERE sID='" & Character & "';", con)
    3. Dim countchar As Integer = cdo.ExecuteScalar()
    4. con.Close()
    5. If countchar = "1" Then
    6. 'Weiter führender Code...
    7. Else
    8. MessageBox.Show("Character does not exists.", "Error", MessageBoxButtons.OK, MessageBoxIcons.Error)

    Oder?

    EDIT#2:

    SQL-Abfrage

    1. SELECT COUNT(sID) FROM dbo.tCharacter WHERE sID='Character'

    Danke fürs helfen!

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „retecvb“ ()

    VB.NET-Quellcode

    1. Dim countchar As Integer
    2. Dim con As SqlConnection = GetConnection()
    3. Dim cdo As New SqlCommand("SELECT COUNT(*) dbo.tCharacter WHERE sID='" & Character & "';", con)
    4. Dim reader As SqlDataReader = cdo.ExecuteReader()
    5. While reader.Read()
    6. countchar = (int)reader(0)
    7. End While
    8. con.Close()
    9. If countchar = "1" Then
    10. 'Weiter führender Code...
    11. Else
    12. MessageBox.Show("Character does not exists.", "Error", MessageBoxButtons.OK, MessageBoxIcons.Error)


    So würde ich das lösen für Syntaxfehler entschuldige ich mich, bin eigentlich ein C#ler

    Ich würde folgendes SQL-Statement verwenden:

    SQL-Abfrage

    1. SELECT COUNT(*) dbo.tCharacter WHERE sID='WERT'
    Die If habe ich von Ihm übernommen und gar nicht weiter drauf geachtet...aber das ist natürlich falsch *sorry*

    Und auch wenn du es mir nicht glauben willst programmier ich eigentlich nur in C#, aber gut es ist frei Meinungsäußerung und jeder kann denke was er will ;)

    die If müsste If countchar = 1 Then heißen.

    So long