c# - 如何正确呈现复选框列表并将其写入数据库? (理论/逻辑帮助)

标签 c# asp.net sql-server database-design checkboxlist

请注意,我现在的数据库设计完全处于沙箱模式。一切还没有最终确定。所有内容(同样是在沙箱模式下)都在一张表中。另外,我现在正在寻求编码帮助。我正在寻找解决这个难题的正确理论/逻辑方法,这样我就可以自己参与编码。这样我学得更好。如果我需要编码帮助,我会回到这里寻求进一步的帮助。

我正在为手动创建的表单提交创建几个 CheckBoxList 中的第一个。我一直在寻找多种方法,不仅可以创建所述 CheckBoxList,还可以将其输入数据库。然而,我面临的挑战(主要是因为我以前没有遇到过这种情况,我想了解这一点)是我不仅需要担心在数据库中正确输入项目,而且最终需要根据这些条目生成报告或制作可打印的表格。

假设我有一份特定类型烧烤架的订单,我需要将此表格发送到全国各地的配送中心。如果表格上突出显示了上述烧烤设施,则配送中心将需要将其拉走。

分发中心的 CheckBoxList 如下所示:

All
Dallas
Miami
Los Angeles
Seattle
New York
Chicago
Phoenix
Montreal

如果勾选了特定城市(或所有城市),则配送中心将拉烧烤架发货。

添加的部分是我想要:

  1. 能够从此数据库创建 GridView ,以进行报告以记录哪个配送中心收到了烧烤订单以及

  2. 能够创建报告来了解哪个配送中心在给定月份发送了烧烤订单(以及其他报告)。

这就是我现在正在玩的东西。

在我的 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/

相关文章:

c# - 用于在 background-url 中查找 url 内值的正则表达式

asp.net - 为什么这个 DropDownList 数据绑定(bind)到 List<String> 不起作用?

sql - 将 sql_variant 转换为以 varchar 形式提供的 data_type

sql-server - PowerShell登录和特权

c# - WebClient 的 Windows Phone BackgroundWorker?

c# - 与 ASP.NET 中的 obj 文件夹连接的 DLL 相关的 bin 文件夹中出现错误

C# - 从 Windows 服务运行 WPF 应用程序

javascript - 在子文件夹中运行的 Angular 7 中的路由无法正常工作

sql-server - 如果 SELECT 语句没有结果,则使用 CASE 返回字符串

c# - 以抽象类的子类数组作为参数的构造函数