0

SQLコードを処理しようとしていますが、問題が発生しています。列とVBが含まれるテーブルadminを備えた単純なデータベースがあります。UserNamePassword

テキストボックスからデータを読み取ってSQL文字列に入力できるようにしたい…SQL文字列は機能し(テスト済み)、簡単なSELECTステートメントで出力できるようになりましたが、 SQLにパラメータを読み取らせます。

ヘルプ?

Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Call Password_Check(txtTestInput.Text)
End Sub

Public Sub Password_Check(ByVal Answer As String)

    Dim con As New SqlConnection
    Dim cmd As New SqlCommand
    Dim parameter As New SqlParameter("@Username", Answer)
    Try

        con.ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings("Database1ConnectionString1").ConnectionString
        con.Open()
        cmd.Connection = con
        cmd.CommandText = " SELECT Password FROM Admin WHERE (UserName = @Username)"
        cmd.Parameters.Add(parameter)
        Dim lrd As SqlDataReader = cmd.ExecuteReader()

        While lrd.Read()
            Dim sothing As String

            sothing = lrd("Password").ToString
            If lrd("Password").ToString = txtPassword.Text Then
                lblTestData.Text = "passwordSuccess"
            ElseIf lrd("Password").ToString <> txtPassword.Text Then
                lblTestData.Text = "passwordFail...:("
            End If
        End While

    Catch ex As Exception
        lblTestData.Text = "Error while retrieving records on table..." & ex.Message
    Finally
        con.Close()
    End Try

End Sub
4

2 に答える 2

0

データベースシステムに関しては、パラメータ名をサポートしていない可能性があります。やってみました ?使用したワットDBシステム?

cmd.CommandText = " SELECT Password FROM Admin WHERE (UserName = ?)"
于 2012-11-17T19:18:57.230 に答える
0

上記のコードで:->Dim parameter As New SqlParameter("@Username", Answer)

2つのオプションを提案できますか?

Dim parameter As New SqlParameter("@Username", sqldbtype.nvarchar)

parameter.value = Answer

また

cmd.CommandText = string.format("SELECT Password FROM Admin WHERE (UserName = {0})", Answer)

完全なコード:

Public Sub Password_Check(ByVal Answer As String)

    Dim con As New SqlConnection
    Dim cmd As New SqlCommand
    Dim parameter As New SqlParameter("@Username", SqlDbType.NVarChar)
    parameter.Value = Answer
    Try

        con.ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings("Database1ConnectionString1").ConnectionString
        con.Open()
        cmd.Connection = con
        cmd.CommandText = "SELECT Password FROM Admin WHERE (UserName = @Username)"
        cmd.Parameters.Add(parameter)
        Dim lrd As SqlDataReader = cmd.ExecuteReader()

        While lrd.Read()
            Dim sothing As String

            sothing = lrd("Password").ToString
            If lrd("Password").ToString = txtPassword.Text Then
                lblTestData.Text = "passwordSuccess"
            ElseIf lrd("Password").ToString <> txtPassword.Text Then
                lblTestData.Text = "passwordFail...:("
            End If
        End While

    Catch ex As Exception
        lblTestData.Text = "Error while retrieving records on table..." & ex.Message
    Finally
        con.Close()
    End Try

End Sub
于 2012-11-18T14:08:11.713 に答える