Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/261.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# DataGridView+组合框+来自2个表的数据_C#_Datagridview_Combobox_Npgsql - Fatal编程技术网

C# DataGridView+组合框+来自2个表的数据

C# DataGridView+组合框+来自2个表的数据,c#,datagridview,combobox,npgsql,C#,Datagridview,Combobox,Npgsql,我有两张桌子: 第一: id | 2ndTableId | Name 第二: id | name 我希望它们在dataGridView上显示为列: 1->组合框,其中包含第二个表中的名称列表以及一些where子句,所选值=来自第一个表“2ndTableId” 2->第一个表中的名称 此外,我想在组合框中保留2个值id和name。我用Id和Name属性创建了自己的类MyComboBox,但出现了一个错误: System.argumentException:DataGridViewComboBo

我有两张桌子:

第一:

id | 2ndTableId | Name
第二:

id | name
我希望它们在dataGridView上显示为列: 1->组合框,其中包含第二个表中的名称列表以及一些where子句,所选值=来自第一个表“2ndTableId” 2->第一个表中的名称

此外,我想在组合框中保留2个值id和name。我用Id和Name属性创建了自己的类MyComboBox,但出现了一个错误:

System.argumentException:DataGridViewComboBoxCell值无效


我不知道该怎么办。你能帮我吗?

我也遇到过同样的情况。我为两个表创建了两个DTO类并分配它们。 创建两个类

public class Table1
{
    public int Id { get; set; }
    public int Table2Id { get; set; }
    public string Name { get; set; }
}

public class Table2
{
    public int Table2Id { get; set; }
    public string Table2Name { get; set; }
}
然后从中创建一个包含四列的datagridview

Column1=> Name:idDropDown Default Text Style:DataGridViewCellStyle { }
Column 2=> Name:Table1Id DataPropertyName:Table1Id 
Column 3=> Name:Table2Id DataPropertyName:Table2Id 
Column 4=> Name:Tbale1Name DataPropertyName:Tbale1Name 
然后生成两个包含所需数据的列表

List<Table1> dropDownList;
List<Table2> gridData;
主要的是我们必须在代码中将AutoGenerateColumns设置为False

idDropDown.DisplayMember="Table2Name";
idDropDown.ValueMember="Table2Id";
idDropDown.DataSource=dropDownList;

gridview1.AutoGenerateColumns = false;
gridview1.DataSource=gridData;