无法使用带有外键的数据集

时间:2017-10-19 16:25:23

标签: c# .net winforms datagridview dataset

除了组合框外,我无法编辑视图中的任何单元格;没有任何文本框可编辑(当我点击时,它不会开始编辑,只显示它已被选中)。

我使用设计器创建了一个表单,添加了一个DataGridView,并从两个数据库表创建了一个DataSet;细节和主人。详细信息包含与Master的外键关系。

然后我将DataGridView绑定到Detail并根据需要更改列。我添加了一个组合框列,它使用Master作为其数据源,Type(master的属性)作为Display成员,Master ID作为其Value Member,Detail ID作为其DataPropertyName;这是为了表明外键关系。

然后我浏览了表格,表格,列和单元格的所有属性,并确保将只读设置为false 。我还检查了数据集的代码,但找不到任何可能导致此问题的属性。

我已尝试处理单元格点击事件,但这也无效。

我发现问题是由以下代码引起的。目标是为主数据集中的每个条目向网格添加一个新行,如果主服务器被标记为必需,则该数据集中的条目尚未包含详细数据集中的条目。我在load方法中调用此方法,在调用fill之后。

如何在不破坏现有行的情况下添加这些行?

    private void AddRequiredRows()
    {
        foreach (DataRow row in tWODataSet.VendCertMaster.Rows)
        {
            if (((VendCertMasterRow)row).Required)
            {
                DataRow[] foundDetail = tWODataSet.VendCertDetail.Select("ID 
                = " + ((VendCertMasterRow)row).ID + " and VendorID = '" + 
                VENDORID + "'");
                if (foundDetail.Length == 0)
                {
                    vendorGridView.Rows.Add(row["Type"], "", "", "");
                }
            }
        }
    }

0 个答案:

没有答案