我的页面上有一个CheckBoxList,表现不太好。CheckBoxList.Selected不断返回False值
这个想法是,一旦点击了表单上的提交按钮,应用程序应清除与特定用户有关的所有行的数据库表,然后根据用户的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注入这里的潜力。只要我有循环工作,我会尽快使用参数。
谢谢你的时间。 任何帮助将不胜感激。
哦,为了上帝的缘故......我一直盯着这个近一个小时,从来没有打扰检查......谢谢! – Ortund