【问题标题】:how to create a dynamic drop down list in C# with window forms如何在 C# 中使用窗口窗体创建动态下拉列表
【发布时间】:2012-12-03 09:24:06
【问题描述】:

我正在尝试为朋友的手机商店构建一个简单的库存程序 我想使用 C# 和访问数据库来存储数据

数据库将有 2 个主要列表:

  1. 设备 - 品牌、型号、颜色、价格、库存、min_stock
  2. 零件 - 品牌、型号、描述、库存、min_stock

GUI 将使用多个下拉列表 品牌会给我:三星,HTC,等'.... 型号会给我:I9000,i9100,ect...

当我尝试思考如何制作时,我遇到的两个主要问题是:

  • 每次出现新的品牌和型号 所以我需要一个选项来将新型号/品牌添加到数据库中,然后更新下拉列表以自动拥有它们
  • 需要连接下拉列表 所以如果我选择品牌 A 只有品牌 A 模型会出现在模型下拉列表中

【问题讨论】:

  • 您的问题是什么?你试过什么?您是否正在寻找如何编写代码的指针?
  • 您是否尝试在更新后重新绑定数据上下文?
  • @Derek,是的......我正在寻找指针,因为到目前为止我使用的是我预先配置的静态下拉列表。我只是不知道如何让它充满活力,所以它会满足我对它的需求
  • 你能上传你的代码吗,我也在准备手机店。如果可以的话,我也会添加新功能

标签: c# winforms list ms-access


【解决方案1】:

首先:不要使用Access,使用SQL Server 2008 Express。但这只是个人喜好。

实现所需要做的事情:在 Visual Studio 中创建一个类型化的数据集,其中包含一个品牌表和一个模型表。使用brand 列上的关系关联这两个表。

从数据库中读取两个表 - 首先是 brands 表,然后是 models 表。否则会报错。

为这两个列表创建一个主/从绑定。为此,请将两个 BindingSource 实例放到您的表单中。将其中一个关联到“品牌”列表,将一个关联到“设备”列表。 “品牌”BindingSource 的数据源必须设置为数据集中的brands 表,另一个BindingSource 的数据源必须设置为两个表之间的关系。所有这些都可以在设计器中实现。

如果您在设置绑定时遇到问题,请在 Google 上搜索“C# 主从绑定数据集”。

编辑
另一个选项 - 如果数据库连接快速 - 将填充数据库中的品牌列表,并在选择品牌时,使用所选品牌名称从数据库中清除并重新填充模型列表。

【讨论】:

  • 谢谢,我会在这个周末有空闲时间编写代码时尝试一下。任何机会你都可以向我推荐一个类似于我尝试创建的代码示例(使用 Google 不是问题,知道如何提出正确的问题是)
  • 快速阅读...我可以阅读数据库的名称,使用 distinct 来获取“品牌”名称吗?
  • 我会为品牌名称做一个SELECT DISTINCT Brand FROM ...,为模型做一个SELECT * FROM ...(模型表需要填满。
  • 数据库会很小(小型商店和库存),所以我认为它不会有速度问题。您的编辑是我在程序中需要的第二个选项,模型下拉列表需要连接到品牌列表
  • 两个选项都允许这样做。我首先描述的“主/细节”的东西也是如此,只是所有数据都在内存中,因此速度非常快。第二个选项更容易编程,但每次选择不同的项目时都需要一个数据库请求。第一个选项是我的首选方式,因为主/从连接非常舒适。
猜你喜欢
  • 2011-02-02
  • 2020-09-11
  • 1970-01-01
  • 1970-01-01
  • 2012-07-09
  • 2013-11-04
  • 1970-01-01
  • 2018-03-08
  • 2012-06-26
相关资源
最近更新 更多