我的页面上有一个 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 注入的可能性。一旦循环工作,我将继续使用参数。
谢谢你的时间。任何帮助将不胜感激。