Hey all,

I have a button that is supposed to display the next row in my database, however Im getting the error "Parameter @ID has no default value"

I can make my code work without parameterized queries but Im trying to make it work with them...So Im sure there is something wrong with my code, obviously

Can anyone help me out?

Code:
    Private Sub btnNext_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNext.Click

        txtID.Text = txtID.Text + 1
        Dim ds As New DataSet()
        Dim intCurrentIndex As Integer = 0
        Dim da As New OleDbDataAdapter()
        Dim conn As New OleDbConnection()
        Dim dr As OleDbDataReader

        conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=mydb.mdb;"
        conn.Open()
        da.SelectCommand = New OleDbCommand("SELECT * FROM Log WHERE ID = @ID")
        da.SelectCommand.Connection = conn
        da.SelectCommand.Parameters.Add("@idate", OleDbType.DBDate, 40, "idate")
        da.SelectCommand.Parameters.Add("@itime_all", OleDbType.VarChar, 40, "itime_all")
        da.SelectCommand.Parameters.Add("@ishift", OleDbType.VarChar, 40, "ishift")
        da.SelectCommand.Parameters.Add("@icomment", OleDbType.VarChar, 5000, "icomment")
        da.SelectCommand.Parameters.Add("@icategory", OleDbType.VarChar, 200, "icategory")
        da.SelectCommand.Parameters.Add("@irecipe", OleDbType.VarChar, 100, "irecipe")
        da.SelectCommand.Parameters.Add("@irate", OleDbType.VarChar, 40, "irate")
        da.SelectCommand.Parameters.Add("@ID", OleDbType.VarChar, 40, "ID")

        dr = da.SelectCommand.ExecuteReader()
        While dr.Read()
            txtID.Text = da.SelectCommand.Parameters("@ID").Value
            txtDate.Text = da.SelectCommand.Parameters("@idate").Value
            txtTime_ALL.Text = da.SelectCommand.Parameters("@itime_all").Value
            txtShift.Text = da.SelectCommand.Parameters("@ishift").Value
            txtComment.Text = da.SelectCommand.Parameters("@icomment").Value
            txtCategory.Text = da.SelectCommand.Parameters("@icategory").Value
            txtRecipe.Text = da.SelectCommand.Parameters("@irecipe").Value
            txtRate.Text = da.SelectCommand.Parameters("@irate").Value
        End While

        conn.Close()

    End Sub
If I change my sql statement to
Code:
WHERE ID = "& txtID.Text &"
Then i can get it to work fine, but I hear that isn't good programming.

Thanks everyone.