dataGridView从数据集填充

本文关键字:填充 数据集 dataGridView | 更新日期: 2023-09-27 18:05:16

我不能得到我的dataGridView更新与数据集中的所有表。我只在dataGridView中得到一行在我尝试填充它之后。

我调用这个来填充我的数据集:

            DataTable table = new DataTable(DateTime.Now.ToString());
            table.Columns.Add("c1");
            table.Columns.Add("c2");
            table.Columns.Add("c3");
            table.Columns.Add("c4");
            table.Columns.Add("c5");
            table.Columns.Add("c6");
            table.Columns.Add("c7");
            table.Rows.Add("s1", "s2", "s3", "s4", "s5", "s6", "s7");
            dataSet1.Tables.Add(table);
            dataSet1.WriteXml("MyData.xml");

数据写得很好,但如果我尝试用这个读取它,我只得到一行填充,即使数据集中有多个条目。

        dataSet1.ReadXml("MyData.xml");
        MessageBox.Show((dataSet1.GetXml()));

我得到了包含正确格式和正确条目数的数据的消息。

        dataGridView2.AutoGenerateColumns = true;
        int i2 = 0;
        while (i2 < dataSet1.Tables.Count)
        {
            dataGridView2.DataSource = dataSet1.Tables[i2];
            i2++;
        }

在此之后,它将只显示一行而不显示表的数量。dataSet1.Tables。Count>= 2,但仍然只得到1行

编辑:似乎每次我调用这一行:
dataGridView2.DataSource = dataSet1.Tables[i2];

正在删除前一行。有什么方法可以附加行吗?

dataGridView从数据集填充

您只在数据集中创建了一个表,因此您的while语句只执行一次:

while (i2 < dataSet1.Tables.Count)
{
    ...
}

Count = 1(表数),因为您只调用了dataSet1.Tables.Add(table);一次。

dataSet1.WriteXml("MyData.xml")仅为该单个表写出模式。因此,读回它只会读回一个表的schema值

下面的代码显示了数据集中表的数量:

while (i2 < dataSet1.Tables.Count)

试着把这个指向表:

dataSet1.Tables["Yourtable"].Count