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;