Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用组合框在C#中选择复杂/复合键?_C#_Sql_Sql Server 2005_Combobox_Composite Primary Key - Fatal编程技术网

如何使用组合框在C#中选择复杂/复合键?

如何使用组合框在C#中选择复杂/复合键?,c#,sql,sql-server-2005,combobox,composite-primary-key,C#,Sql,Sql Server 2005,Combobox,Composite Primary Key,我对C#NET(VisualStudio2010)有一个问题。我在SQL2005 express中有2个数据表: 主键为“建筑编号”的建筑 主键为“building number”(建筑表外键)+“公寓号”的公寓。(公寓是建筑的薄弱实体,其关键是复合材料) 这两个表都是我作为DataSet导入到项目中的大型数据库的一部分。 我想在选择建筑号和公寓号时显示公寓详细信息。Building number在文本框中设置(其值始终是由其他控件选择的建筑编号),我希望一个组合框仅显示文本框中建筑的公寓编号,

我对C#NET(VisualStudio2010)有一个问题。我在SQL2005 express中有2个数据表:

  • 主键为“建筑编号”的建筑
  • 主键为“building number”(建筑表外键)+“公寓号”的公寓。(公寓是建筑的薄弱实体,其关键是复合材料)
  • 这两个表都是我作为DataSet导入到项目中的大型数据库的一部分。 我想在选择建筑号和公寓号时显示公寓详细信息。Building number在文本框中设置(其值始终是由其他控件选择的建筑编号),我希望一个组合框仅显示文本框中建筑的公寓编号,而不是表中的所有公寓编号(这会导致类似于1、2、3、1、4、5、1、2等的结果(因为它选择了所有行))。并不是所有的建筑都有相同的公寓号或相同数量的公寓,我应该动态添加/更改/删除这些公寓

    选择构建部分已完成并正在运行。我只是对只显示当前建筑的公寓(至少是我需要的公寓号码)有问题

    我不想(更确切地说,不允许)使用datagrid。仅限“详细”控制

    我该怎么做?我对C#几乎没有经验,我也不知道如何“最大限度地”处理数据集。 我曾考虑过创建一个视图,该视图将给出结果,但我不知道如何导入视图并将建筑编号设置为参数。 任何其他明智的方式都是受欢迎的

    请帮忙

    多谢各位,
    Shay.

    我将为此创建两个下拉列表,其中自动回邮设置为true。在页面加载时,我会选择所有的建筑ID并将它们放在下拉列表中。当下拉列表被更改时,将触发一个onchange事件,该事件将使用对应建筑id的所有公寓id填充第二个下拉列表。

    好的,我在这里进一步挖掘,找到了第二个问题的答案。感谢Ross提供DataRow[]解决方案以及如何填充它(这是第一步)。 对于子孙后代,以下是相关代码:


    DataRow[]apartmentCollection=dbBonusHwDataSet.tblApartment.Select(“buildingNum=”+Convert.ToInt16(buildingNum\u textbox.Text.ToString())+”

    apartmentNum_combox.DataSource=apartmentCollection

    apartmentNum_combox.DisplayMember=“apartmentNum”


    我不知道为什么代码块没有正确显示。很抱歉现在使用IE。但是我在“代码”选项卡中看不到代码…

    如何填充第二个下拉列表?就像我说的,它们位于SQL数据库的数据集中?DataRow[]apartmentCollection=dataset.Tables[“apartmentTable”]。选择(“buildingid Like'+ddlBuilding.SelectedItem.Text+”;好的,我想我可以让它工作。。。但是,如何将DateRow[]和“倒”到组合框中,然后正确显示它呢?现在我能得到的最多是3行,它们都是“DBbonus.DbBonusHwDataSet+tblApartmentRow”?非常感谢Ross.my代码,该代码到目前为止(未更新)都能正常工作,DataRow[]apartmentCollection=dbBonushDataSet.tblApartment.Select(“buildingNum=”+Convert.ToInt16(buildingNum\u textbox.Text.ToString())+“”;apartmentNum_combox.DataSource=apartmentCollection;apartmentNum_combox.DisplayMember=apartmentCollection[“apartmentNum”].ToString();最后一行没有运行,并给出以下内容,它说它不能将字符串转换为int,但[]中的类型需要int。为什么?它不需要列名吗?将“apartmentNum”转换为int也没有帮助…对不起,我不知道为什么“code”标记或几行代码都不起作用。。。