asp.net - 如何选择多个类别的产品

标签 asp.net ms-access

根据我的问题标题,我的 Access 数据库结构如下:

类别

categoryid   categoryname
1            one
2            two
3            three

产品表:

productid    productname    categories
1            one            1,2,3
2            two            3
3            three          1,2

当我的categoryid为1时,我不知道如何选择具有多个类别的产品。因为当我使用 In 运算符时,我收到一些错误..

Select * from product where categories In (categodyid) because cannot compare a collection with one value.

我被困在这里了!请帮我!谢谢。

最佳答案

首先,您的表格没有标准化。查看产品表中的类别列。每个单元格应该只有一个值。通过允许多个值,您将面临各种问题的风险,包括更新/插入异常以及您现在所看到的情况。您还使得执行选择和其他操作变得非常困难。相反,请考虑使用以下示例标准化您的表:

类别

categoryid   categoryname
1            one
2            two
3            three

产品

ProdductId   ProductName
4            prod1
5            prod2
6            prod 3

Category_Prod

CategoryId   ProductId
1            3
1            4
2            3

第三个表是纠正多对多模式的一种方法。如果您对如何执行此操作或如何使用它有任何疑问,请告诉我

关于asp.net - 如何选择多个类别的产品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15831563/

相关文章:

ms-access - 禁用基于其他值的复选框

c# - 如何从 C# 和 SQL 创建用户名和密码保护的 MS Access 2007 文件?

ms-access - 查询性能: Using saved queries vs adding constraints during runtime to a query

c# - 在 IIS 上发布时出现 EmguCV 异常

c# - 从存储过程中获取 XML

javascript - ASP 更新面板中的引导模式对话框阻止了 tinyMCE 插件中的输入焦点

c# - 在 ASP.Net C# 中,当站点发生错误或触发 Application_Error 时,应用程序会结束吗

c# - ASP.NET Web 服务 DTO 属性与公共(public)变量

php - UTF-8 : successful conversion to iso-8859-1 but not to iso-8859-2

ms-access - 如何从 VBA 代码执行 PostgreSQL 函数?