C# 使用联接表将多个表中的数据拉到一个表单中

C# 使用联接表将多个表中的数据拉到一个表单中,c#,sql,C#,Sql,使用C#/Visual Studio 2013连接到MSSQL Server 2014上的数据库 我想将多个表中的数据拉到一个表单中。 Form1(datagridview)>Form2(txtBox;连接到其他表) 这是我在Form1>Form2中的代码 private void cLMASTERDataGridView_CellDoubleClick(object sender, DataGridViewCellEventArgs e) { System.Data.D

使用C#/Visual Studio 2013连接到MSSQL Server 2014上的数据库
我想将多个表中的数据拉到一个表单中。
Form1(datagridview)>Form2(txtBox;连接到其他表)

这是我在Form1>Form2中的代码

private void cLMASTERDataGridView_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
    {
        System.Data.DataRowView SelectedRowView;
        MedicalSystemDataSet.CLMASTERRow SelectedRow;

        SelectedRowView = (System.Data.DataRowView)cLMASTERBindingSource.Current;
        SelectedRow = (MedicalSystemDataSet.CLMASTERRow)SelectedRowView.Row;

        frmDetail PatientDetail = new frmDetail();
        PatientDetail.LoadPersonal(SelectedRow.ACCOUNT);
        PatientDetail.Show();
    }'
这是我在表格2中的代码:

internal void LoadPersonal(String ACCOUNT)
    {
        cLMASTERTableAdapter.FillByACCOUNT(medicalSystemDataSet.CLMASTER, ACCOUNT);
    }'
我对FillByACCOUNT的WHERE SQL查询如下

WHERE ACCOUNT = @ACCOUNT
在上面的代码中,Form2加载的数据来自cLMASTER表,而不是其他表

我对其他表中的pull数据的SQL查询是:

SELECT c.ACCOUNT, c.FAMILY, c.DOCTOR, c.PLNAME, c.PFNAME, p.Account, p.PA_PatientID, w.PA_PatientID, w.Code_OD1, w.Rx_OD1
FROM CLMASTER AS c INNER JOIN
 PA_Account AS p ON c.ACCOUNT = p.Account INNER JOIN
 CL_Wear2 AS w ON p.PA_PatientID = w.PA_PatientID
WHERE (c.ACCOUNT = @ACCOUNT)'
当我在SQLQueryBuilder中运行上述命令并执行时,我输入了所需的帐号,查询可以从其他表中提取数据。但是,当我通过该查询运行应用程序时,会出现一个错误。出现错误并出现异常:

An unhandled exception of type 'System.Data.ConstraintException' occurred in System.Data.dll
Failed to enable constraints. One or more rows contain values violating non-null, unique, or foreign-key constraints.

有什么建议吗

你太深了。我建议你从基础开始,因为你只会遇到越来越多的麻烦。C#、ADO.NET、WinForms、SQL和LINQ的基础知识。下面是您试图实现的目标:双击事件应该获取所单击记录的PersonID,并将其作为参数传递给正在打开的表单。那个表单应该用它来过滤其他3个表。那个么你们的问题是什么?顺便问一下,你在使用哪个数据库?DB2?使用lightswitch,它会让你的生活变得更轻松。@Kris:是的,我太深了。。。但任何帮助都将不胜感激。很想学习基础知识,但只需要在30日前启动一个快速且肮脏的应用程序即可。:)对于快速和肮脏,我建议你把它外包:)你太过分了。我建议你从基础开始,因为你只会遇到越来越多的麻烦。C#、ADO.NET、WinForms、SQL和LINQ的基础知识。下面是您试图实现的目标:双击事件应该获取所单击记录的PersonID,并将其作为参数传递给正在打开的表单。那个表单应该用它来过滤其他3个表。那个么你们的问题是什么?顺便问一下,你在使用哪个数据库?DB2?使用lightswitch,它会让你的生活变得更轻松。@Kris:是的,我太深了。。。但任何帮助都将不胜感激。很想学习基础知识,但只需要在30日前启动一个快速且肮脏的应用程序即可。:)对于快速和肮脏,我建议你把它外包:)你太过分了。我建议你从基础开始,因为你只会遇到越来越多的麻烦。C#、ADO.NET、WinForms、SQL和LINQ的基础知识。下面是您试图实现的目标:双击事件应该获取所单击记录的PersonID,并将其作为参数传递给正在打开的表单。那个表单应该用它来过滤其他3个表。那个么你们的问题是什么?顺便问一下,你在使用哪个数据库?DB2?使用lightswitch,它会让你的生活变得更轻松。@Kris:是的,我太深了。。。但任何帮助都将不胜感激。很想学习基础知识,但只需要在30日前启动一个快速且肮脏的应用程序即可。:)对于快速和肮脏,我建议您将其外包:)