Quantcast
Channel: SQL Server Express Forum
Viewing all articles
Browse latest Browse all 484

Query auf eine SQL Express Datenbank mit FehlerSklarvariable definieren

$
0
0

Hallo ich versuche ein Login Bildschirm als Windowsformsanwendung zu erstellen und möchte eine Parametrisierte Abfrage zu meiner Datenbank für den Benutzer, Passwort und einen Wahr oder Falsch wert aus führen und bekommen ein Fehlermeldung @Benutzer Skalarvariable muss definiert werden. Irgendwie finde ich den Fehler nicht den ich habe die Variablen vorher definiert.

wer kann mir da helfen ich benutze folgenden Code

Definiert als Klasse:

Public Sub ParamQuery(Query As String, Optional Collate As Collation = Collation.None)
        Try
            ODBCcon.Open()


            If Collate = Collation.CaseSensitive Then Query = Query & " COLLATE SQL_Latin1_General_CP1_CS_AS "

            ODBCcmd = New OdbcCommand(Query, ODBCcon)

            For Each p As OdbcParameter In ODBCParam
                MsgBox(p.ParameterName & ":" & p.Value)
                ODBCcmd.Parameters.Add(p)
                ODBCcmd.Parameters(p.ParameterName).Value = p.Value
            Next

            ODBCDA = New OdbcDataAdapter(ODBCcmd)
            ODBCDataSet = New DataSet
            ODBCDA.Fill(ODBCDataSet)

            MsgBox(Query & vbCrLf & ODBCDataSet.Tables(0).Rows(0).Item(0), MsgBoxStyle.OkOnly, "Erfolgreich")

            ODBCcon.Close()
        Catch ex As Exception
            If ODBCcon.State = ConnectionState.Open Then ODBCcon.Close()
            MsgBox("Abfrage fehlgeschlagen : " & ex.Message)
            MsgBox(Query)
        End Try

    End Sub

    Public Sub AddParam(Name As String, Value As Object, Optional DataType As DbType = DbType.String)
        Dim newParam As New OdbcParameter With {.ParameterName = Name, .Value = Value, .DbType = DataType}
        ODBCParam.Add(newParam)
    End Sub

    'Parameter leeren
    Public Sub FlushParams()
        ODBCParam.Clear()
    End Sub

    Public Enum Collation
        None
        CaseSensitive
    End Enum


in der Form:



Private Sub btnLogin_Click(sender As Object, e As EventArgs) Handles btnLogin.Click

              ODBC.AddParam("@Benutzer", txtBenutzername.Text, SqlDbType.VarChar)
        ODBC.AddParam("@Passwort", txtPasswort.Text, DbType.String)
        ODBC.AddParam("@Lagerist", True, DbType.Boolean)

        ODBC.ParamQuery("SELECT Name FROM Mitarbeiter WHERE Name = @Benutzer " &"AND PIN = @Passwort AND Lagerist = @Lagerist ", ODBCControl.Collation.CaseSensitive)


        frmMenü.Show()
        Me.Hide()

    End Sub

Danke

Remo


Viewing all articles
Browse latest Browse all 484