Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/263.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# 创建3级主详图栅格_C#_Winforms_Devexpress_Master Detail - Fatal编程技术网

C# 创建3级主详图栅格

C# 创建3级主详图栅格,c#,winforms,devexpress,master-detail,C#,Winforms,Devexpress,Master Detail,我正在尝试创建一个具有3级主详细视图的gridview 我的意见应该包括: 发票 发票行 发票行详细信息 我使用以下代码: public partial class Manage_Other_Company_Invoices : DevExpress.XtraBars.Ribbon.RibbonForm { private int companyID; DataAccess_CompanyInvoice dal = new DataAccess_CompanyInvoice(

我正在尝试创建一个具有3级主详细视图的gridview

我的意见应该包括:

  • 发票
  • 发票行
  • 发票行详细信息
我使用以下代码:

public partial class Manage_Other_Company_Invoices : DevExpress.XtraBars.Ribbon.RibbonForm
{
    private int companyID;
    DataAccess_CompanyInvoice dal = new DataAccess_CompanyInvoice();
    DataSet dataSet; 

    public Manage_Other_Company_Invoices(int companyID)
    {
        this.companyID = companyID;
        DisplayData();
    }

    private DataSet GetItems()
    {
        dataSet = new DataSet();
        dataSet.Clear();
        dataSet.Tables.Add(dal.CreateInvoiceTable(companyID));
        dataSet.Tables.Add(dal.CreateInvoiceLinesTable());
        dataSet.Tables.Add(dal.CreateInvoiceLineDetailsTable());

        DataColumn keyColumn1 = dataSet.Tables["Invoice"].Columns["invoiceID"];
        DataColumn foreignKeyColumn1 = dataSet.Tables["InvoiceLines"].Columns["invoiceID"];
        dataSet.Relations.Add("Invoice", keyColumn1, foreignKeyColumn1, false);

        DataColumn keyColumn2 = dataSet.Tables["InvoiceLines"].Columns["company_Invoice_Line_ID"];
        DataColumn foreignKeyColumn2 = dataSet.Tables["InvoiceLineDetails"].Columns["InvoiceLineID"];
        dataSet.Relations.Add("InvoiceLineInvoiceLineDetails", keyColumn2, foreignKeyColumn2,false);

        return dataSet;
    }

    private void DisplayData()
    {
        //MessageBox.Show("test" + GetItems().Tables["Invoice"].Rows.Count.ToString());
        gridControl.DataSource = GetItems().Tables["Invoice"];
        gridControl.ForceInitialize();
    }
}
问题是,当我在
DisplayData()
函数中将测试行从注释中取出时,它会显示该表中正确的行数。但奇怪的是,后面的行抛出了一个空引用异常


我做错了什么

我在这里看不到与DevExpress相关的内容。。。您是否尝试将
GetItems()
结果提取到局部变量中?似乎
GetItems
方法是不可重入的。您是否尝试过将数据集用作GridControl的数据源?我得出结论,问题是因为GridControl在经过密集的故障排除后被视为
null
。我仍然不知道如何修复这个问题,因为我完全重新创建了前端,尝试更改名称,尝试添加第二个gridcontrol,。。。但仍然不知道为什么会出现问题