Database 如何在vb.net中的while或for循环中保存多个复选框值
我有美国50个州的50个复选框。用户可以选择全部50或仅1(因此基本上可以选择他想要的任何数字)。根据他的选择,我想在SQLServer2008中插入或更新表。e、 g-Database 如何在vb.net中的while或for循环中保存多个复选框值,database,vb.net,checkbox,Database,Vb.net,Checkbox,我有美国50个州的50个复选框。用户可以选择全部50或仅1(因此基本上可以选择他想要的任何数字)。根据他的选择,我想在SQLServer2008中插入或更新表。e、 g- 颜色=蓝色,chk1=检查,chk2=检查,chk3=检查(chk=复选框)。现在,用户希望在该列表中添加10个以上的状态,或者删除这3个,再添加5个。所以你基本上明白了。数据库中的表看起来像这个-ID颜色State\u ID有一个名为states的表,所以stateid应该来自那里。那么如何在vb.net中执行循环插入或更新
颜色=蓝色,chk1=检查,chk2=检查,chk3=检查(chk=复选框)。现在,用户希望在该列表中添加10个以上的状态,或者删除这3个,再添加5个。所以你基本上明白了。数据库中的表看起来像这个-ID颜色State\u ID有一个名为states的表,所以stateid应该来自那里。那么如何在vb.net中执行循环插入或更新呢?我将在.net中使用按位操作和long变量(与标志的枚举混合使用) db中的一个字段,用户选择的内容更容易播放 小样本
Enum state As Long '64 enum maxium since long = 64 bits
ALABAMA = 1
ALASKA = 2
NEVADA = 4
ARIZONA = 8
ARKANSAS = 16
CALIFORNIA = 32
COLORADO = 64
CONNECTICUT = 128
DELAWARE = 256
'etc etc etc
End Enum
Module Module1
Sub Main()
Dim userselect As state = 0
Console.WriteLine("your checked box state")
Console.WriteLine("in this case im using the order of the enum for selecting")
Dim checkbox = New Boolean() {True, False, False, True, False, False, True, False, False}
For i = 0 To checkbox.Length - 1
userselect = CType(userselect + If(checkbox(i), (2 ^ (i + 1)), 0), state)
Next
For Each s As state In [Enum].GetValues(GetType(state))
If (userselect And s) > 0 Then
Console.WriteLine("selected " & s.ToString)
End If
Next
Console.WriteLine("Value of userselect is " & userselect.ToString)
Console.ReadKey()
End Sub
End Module
OUTPUT:
selected NEVADA
selected ARIZONA
selected COLORADO
Value of userselect is 76
我会使用一个数据源和一个复选框列表。您的状态已经存在于数据表中,请使用SqlDataSource(或您自己选择的数据表)中的数据绑定选择填充复选框列表。然后,单击按钮时,只需迭代以下循环:
Dim dt as New myTypedDataTable ' constructed from datasource
Dim color as String = "Blue" ' Filled however you set color
For Each item As ListItem In Me.CheckBoxList1.Items
If item.Selected Then
Dim row as myTypedDataTableRow = dt.NewmyTypedDataTableRow
row.Color = color
row.State_id = item.Value
dt.Rows.Add(row)
End If
Next
在数据表中填充了有问题的行之后,可以使用SqlDataSource执行插入操作,也可以原子地执行插入操作。有几种方法可以实现它,但这可能是迭代给定数据结构的项的最简单方法。在本文中,我有时会采用简单的方法删除数据库中存储的所有用户项,然后只执行插入操作
例如,如果您有一个插入日期,这可能会是一个问题。在这种情况下,您需要列出用户选择的选项。在新列表中循环,如果在旧列表中找不到该项,则它是一个插入项。在旧列表中循环,如果在新列表中找不到该项,则该项将被删除。这是Windows窗体、ASP.NET还是其他内容?ASP.NET与VB.NET代码为什么此问题与其他用户提出的问题完全相同?-@比尔:你怎么会因为在两边都发表同样的评论而得票呢:)这不公平。你能解释得更多吗?或者给我一个链接,我可以用一个例子来读吗?给我几分钟时间来创建一个小例子