asp.net チェックボックス リスト コントロールに値を保存して入力するコードを持つアプリケーションを継承しました。既存のコードは非常に長く、効率的ではないようです。このアプリケーションを書き直す予定で、データベースの設計を完全に制御できます。以下のコードを改善および短縮する方法について誰かアドバイスをいただけますか。
すべてのチェックボックス リスト アイテムは、SQL テーブルにビット フィールドとして格納されます。チェックボックスリスト値の各行は、ユーザー ID に割り当てられます。繰り返しになりますが、私の目標は、選択したチェックボックス リストの項目をより少ないコードで保存および設定する、より効率的な方法を見つけることです。ありがとう。
Database Design
UserID AA BC AC
1 1 1 0
2 0 1 1
3 1 1 0
4 1 1 1
'Code to populate selected checkboxlist items
Dim CodeData as datarow
CodeData = CodeDataTable.Rows(0)
For Each li As ListItem In Me.cblCodes.Items
If li.Text = "AA" Then
If Not CodeData.IsOneNull Then
If CodeData.One = True Then
li.Selected = True
End If
End If
End If
If li.Text = "BC" Then
If Not CodeData.IsTwoNull Then
If CodeData.Two = True Then
li.Selected = True
End If
End If
End If
If li.Text = "AC" Then
If Not CodeData.IsTwoNull Then
If CodeData.Two = True Then
li.Selected = True
End If
End If
End If
......
Next
'Code to save checkboxlist values
Dim AA As Boolean = False
Dim BC As Boolean = False
Dim AC As Boolean = False
Dim AD As Boolean = False
AA = Me.cblCodes.Items.FindByText("AA").Selected()
BC = Me.cblCodes.Items.FindByText("BC").Selected
AC = Me.cblCodes.Items.FindByText("AC").Selected
AD = Me.cblCodes.Items.FindByText("AD").Selected
CodeTableAdapter.UpdateCodes(UserID,AA,BC,AC,AD.......)
テーブル アダプタは、SQL ビット フィールドを適切なブール値に設定するストアド プロシージャを呼び出します。