单个Datagridview Master-Details,没有错误但只显示“(Collection)”

Single Datagridview Master-Details, no error but only shows "(Collection)"

我正在使用 SQLite,我想在单个 DataGridView 中使用 Master-Detail。没有错误 return,我检查了 Master Table ("ASM") 和 Details Table ("PART") 他们的数据都很好。但是,我的 gridAsmPart 仅在第 PART 列上显示了包含单词 (Collection) 的一行。任何帮助将不胜感激。

  public void LoadData()
    {
       var asm = new SQLiteDataAdapter("SELECT * FROM ASM", dB.connectionString);
       var part = new SQLiteDataAdapter("SELECT * FROM PART", dB.connectionString);

       var ds = new DataSet();

        asm.Fill(ds, "ASM");
        part.Fill(ds, "PART");

        DataRelation data_relation = new DataRelation(
            "ASM_PART",
            ds.Tables["ASM"].Columns["PART"],
            ds.Tables["PART"].Columns["PART"]);
        ds.Relations.Add(data_relation);

        gridAsmPart.DataSource = ds;
    }

编辑 1:似乎如果我使用旧的 DataGrid,它就可以工作。

嗯......在代码行......gridAsmPart.DataSource = ds; ...... ds是一个DataSet并且当你将DataSet分配给网格作为DataSource,那么您还需要在 DataSet 中指定网格应显示的“哪个”table。这就是网格 DataMember 的用途。

您是否尝试过将网格 DataMember 属性 设置为类似...?

gridAsmPart.DataSource = ds;
gridAsmPart.DataMember = “ASM”;

或者如果你想显示“部分”table......

gridAsmPart.DataSource = ds;
gridAsmPart.DataMember = “PART”;