0

我无法让我的 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];

它正在删除前一行。有什么办法可以代替该行吗?

4

2 回答 2

1

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

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

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

dataSet1.WriteXml("MyData.xml")只是写出该单个表的架构。所以读回它只会读回一个表的模式。

于 2013-03-22T00:50:17.477 回答
0

以下代码似乎用于计算数据集中的表数:

while (i2 < dataSet1.Tables.Count)

尝试将其指向表格:

dataSet1.Tables["Yourtable"].Count
于 2013-03-21T20:20:50.953 回答