请注意,我现在的数据库设计完全处于沙箱模式。一切还没有最终确定。所有内容(同样是在沙箱模式下)都在一张表中。另外,我现在正在寻求编码帮助。我正在寻找解决这个难题的正确理论/逻辑方法,这样我就可以自己参与编码。这样我学得更好。如果我需要编码帮助,我会回到这里寻求进一步的帮助。
我正在为手动创建的表单提交创建几个 CheckBoxList 中的第一个。我一直在寻找多种方法,不仅可以创建所述 CheckBoxList,还可以将其输入数据库。然而,我面临的挑战(主要是因为我以前没有遇到过这种情况,我想了解这一点)是我不仅需要担心在数据库中正确输入项目,而且最终需要根据这些条目生成报告或制作可打印的表格。
假设我有一份特定类型烧烤架的订单,我需要将此表格发送到全国各地的配送中心。如果表格上突出显示了上述烧烤设施,则配送中心将需要将其拉走。
分发中心的 CheckBoxList 如下所示:
All Dallas Miami Los Angeles Seattle New York Chicago Phoenix Montreal
如果勾选了特定城市(或所有城市),则配送中心将拉烧烤架发货。
添加的部分是我想要:
能够从此数据库创建 GridView ,以进行报告以记录哪个配送中心收到了烧烤订单以及
能够创建报告来了解哪个配送中心在给定月份发送了烧烤订单(以及其他报告)。
这就是我现在正在玩的东西。
在我的 aspx 页面中,我编写了一个复选框列表,其中包含作为列表项输入的所有配送中心以及“全部”(配送中心)的选项。
我还在该表中创建了一个专用列,用于保存列表项中的所有信息,并为此表编写了一个 sqldataconnection,以利用为此目的利用数据库的可编程性。
在将选择写入数据库时,我最初为每个目的地城市创建了一列,包括“全部”选项。我正在考虑将选择放入一列中,但根据我今天阅读的有关数据库规范化的一些信息,前一个选项似乎比后者更好。对于这种情况,尤其是当我需要考虑报告时,这种做法是否正确?我是否将 CheckBoxList 数据放入特定列的一个单元格中?我是否为每个配送中心创建单独的列?我是否走在正确的轨道上?
最佳答案
根据您要存储的城市数量,我使用按位运算符来存储少量数据。实际上,它会将其存储在表中,如下所示:
CityID Location
2 Dallas
4 Miami
8 New York
16 Chicago
32 Montreal
并继续在基地 2 前往其他城市。
当您的用户为订单选择多个城市时,插入到城市数据库中的值是按位 OR 计算。因此,如果他们选择达拉斯、纽约和芝加哥,您将执行以下操作:
2 OR 8 OR 16
等于 26
现在,您可以对结果值使用按位与。因此,如果检查迈阿密,则评估如下:
26 AND 4 = 0
这表明迈阿密没有被选中。在评估中选择的任何值,都会返回其 ID,如下所示:
26 AND 8 = 8
同样,我仅将其用于小数据子集,并使数据存储尽可能紧凑。从计算角度来看,它可能比其他一些方法贵一点,但我不能 100% 确定。
关于c# - 如何正确呈现复选框列表并将其写入数据库? (理论/逻辑帮助),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17283350/