我的页面上有一个 CheckBoxList 表现不佳。
这个想法是,一旦单击表单上的提交按钮,应用程序应该清除与特定用户相关的所有行的数据库表,然后根据用户的 CheckBoxList 选择重新插入新行。
问题是,无论是否选择了 CheckBoxList 中的任何(或所有)项目,应用程序都会不断获取Selected = False.
这是我的代码:
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
    loadRegions()
End Sub
Private Sub loadRegions()
    Dim db As New Database
    Dim sql As String = "select * from regions"
    Dim dr As MySqlDataReader = db.execDB(sql, "Text", Nothing, "DataReader", False)
    If dr.HasRows Then
        cblRegion.DataSource = dr
        cblRegion.DataTextField = "regionname"
        cblRegion.DataValueField = "regionid"
        cblRegion.DataBind()
    End If
    dr.Close()
End Sub
Protected Sub btnRegister_Click(sender As Object, e As System.EventArgs) Handles btnRegister.Click
        ' ============================================================
        ' There's more code in here, but it's irrelevant to this paste
        ' ============================================================
        Dim sql As String = "delete from userregions where userid = " & lblUserID.Text & ";"
        For i As Integer = 0 To cblRegion.Items.Count - 1
            If cblRegion.Items(i).Selected Then
                sql &= "insert into userregions (userid, regionid)" & _
                    "values(" & UserID & ", " & cblRegion.Items(i).Value & ")"
                db.execDB(sql, "Text", Nothing, "None", False)
            End If
        Next
End Sub
作为记录
,我知道这里有 SQL 注入的可能性。一旦循环工作,我将继续使用参数。
谢谢你的时间。任何帮助将不胜感激。