c#将ComboBoxList绑定到SqlCe数据库

时间:2011-06-01 00:03:11

标签: c# database visual-studio-2010

这更像是一个理解/澄清问题,而不是技术问题。我目前正在尝试将一些数据从数据库绑定到ComboBoxList。

数据库是SqlCe类型。它被称为voodoobase.sdf。它在服务器资源管理器中列出,并列出其所有表。

Q1 )将下拉列表ComboBoxList绑定到数据库中的数据的正确步骤是什么?

您是否需要浏览数据源?

什么是模型容器?

我已经习惯了PHP / MySQL,只需连接即可自行完成。如果您有任何明确的联系或能够以人类可读的方式回答这个问题,我将不胜感激。

我已经接近将这一切搞清楚了,但我想我需要把它们放在一起。

Q2 )数据库设计并作为DBModel.edmx在解决方案资源管理器中提供。如果我在这里进行更改并“从模型生成数据库”它似乎更新数据库(这是好的)但数据源不会随之更新? < - 这是一个正确的功能吗?

我知道这是一个罗嗦的问题,但是如果你能澄清这一点会让我开心=))

1 个答案:

答案 0 :(得分:1)

<强> Q1
这可能是一种相当迂回的方式,但这就是我为组合框做的方式:

  1. 为数据库创建数据集(当我添加我的sqlce db时,我选择在向导中添加一个自动弹出的数据集)

  2. 双击打开数据集

  3. 从“服务器资源管理器”中创建表格&amp;根据需要编辑您的数据,然后拖放将表格放到数据集设计器

  4. 打开您的Windows窗体的设计视图,并从“数据源”(其中应包含您的数据集)中,拖放&amp; amp;将您希望在此表格中显示的某些字段放到表单上(例如姓名,姓氏,年龄,性别等)。然后,Visual Studio将自动添加以下对象(在设计视图的底部可见):dataset,bindingsource,表适配器和表适配器管理器。

  5. 现在添加要绑定到此表的Combobox(例如“cboName”)

  6. 在Form_Load事件的代码隐藏中,按如下方式绑定它: cboName.DataSource = myTableBindingSource; cboName.DisplayMember =“姓名”; //将绑定到“名称”列

  7. 那应该是它。现在,当应用程序运行时,您将能够从组合框中按名称选择人员,并且他们的详细信息将相应地显示在您在表单上删除的其他控件中。我对此仍然很陌生,所以可能有更好的方法。但到目前为止这对我有用:)。不幸的是,我不确定模型容器是什么。

    <强> Q2:
    我不确定edmx数据库模型。我的数据库是一个sdf文件,我的数据集是一个xsd文件,我通过服务器资源管理器编辑我的数据库。

    ...但是非常重要的是,您的“设计”数据库不是您的应用程序在运行时使用的数据库。去检查你的bin文件夹 - 在那里你会找到你的app运行的db。 (使用SQLCE,设计中的数据库与使用的数据库分离,您必须在设计或数据中进行更改后在bin文件夹中手动更新(复制粘贴覆盖)数据库。)

    请注意,您的“数据源”就像是数据库的地图。如果您的数据库更改没有反映出来,您将不得不更新(再次拖放您的表)...或重新创建数据源(例如您的数据集)。