C# 如何使用BindingSource WinForms显示关系中的关系

C# 如何使用BindingSource WinForms显示关系中的关系,c#,mysql,winforms,visual-studio,data-binding,C#,Mysql,Winforms,Visual Studio,Data Binding,我有3个表,我试图展示它们之间的关系。在表1中,我有一个主ID字段,它与表2有一个关系,表2中包含该主ID的倍数 IE: Table 1 PID || Name ====================== 123 || SomeName Table 2 Second ID || PID || Code_ID =============================== 1 || 123 || 55 2 || 123

我有3个表,我试图展示它们之间的关系。在表1中,我有一个主ID字段,它与表2有一个关系,表2中包含该主ID的倍数

IE:
Table 1

PID        ||  Name
======================
123        ||  SomeName


Table 2
Second ID ||  PID  || Code_ID
===============================
1        ||  123  ||  55
2        ||  123  ||  66


Table 3
Code ID   ||  Code_Description
===============================
55        ||  Some Description 1
66        ||  Some Description 2
我正在使用Windows窗体和数据网格视图,该视图使用数据集中的数据绑定和关系。我在表1中的PID和表2中的PID之间有一个关系。我可以为该关系设置一个数据绑定,它将显示两个关系中的1-many行关系。然后,我在表2 Code_ID和表3 Code_ID之间创建了一个关系。我使用PIDs之间的关系作为数据源,使用我的新Code_ID作为数据成员,创建了另一个数据绑定。但是,这仅显示表3中具有正确描述的一行

我想做的是在一个多PID关系中显示代码_ID,以显示表3中包含的描述,我不知道如何做到这一点


我很抱歉,如果这是不清楚的,但这是最好的,我可以描述它与我有限的了解这些控制。我是新的数据库编程和任何建议将不胜感激!谢谢。

我解决这个问题的方法是使用带有DataTable的SQL命令

为了澄清最初的一些问题,我有一个绑定到BindingSource的列表,用户可以滚动浏览。当他们滚动该表中的条目列表时,会显示其他表中的相关条目。在本例中,它是三个表之间的关系

我为list BindingSource的CurrentChanged事件设置了一个函数。在本例中,我使用表2和表3之间的内部联接查询数据库,并在结尾处添加一个条件(其中table2.PID=“bindingsource PID”{我使用了带有bindingsource.Current的DataRowView,使用DataRowView强制转换以获取相关的table1 bindingsource PID}

如果任何人发现自己处于此场景中,示例代码:

private void ListBindingSource_CurrentChanged(object sender, EventArgs e)
    {
    DataRowView rowView = (DataRowView)ListBindingSource.Current;
    string query = "Inner Join SQL Query Table 2 & 3 /w Where PID = rowView[PIDColumn]";
    SqlConnection connection = new SqlConnection("SQL Connection");
    connection.Open();
    SqlCommand cmd = new SqlCommand();
    cmd.Connection = connection;
    cmd.CommandType = CommandType.Text;
    cmd.CommandText = query;
    SqlDataAdapter da = new SqlDataAdapter(cmd);
    DataTable SQLResultTable = new DataTable();
    da.Fill(SQLResultTable);
    dataGridView1.DataSource = SQLResultTable;
    }

是否尝试过通过联接查询服务器?我确实有一个在SQL server中运行的查询解决方案,但我希望能够使用设计器系统地执行此操作。原因是我有一个填充了第一个表的列表,当您滚动该列表时,表单上的标签会通过数据自动更新为相关选择绑定和关系。我已经能够处理1-1关系和1-many关系,但只能处理两个表之间的关系。我现在有一个新的列表,填充与该业务的唯一PID相关的代码列表,但我希望它们显示在另一个表中的描述。