来自dataSet的dataGridView填充

时间:2013-03-21 20:03:32

标签: c# datagridview dataset

我无法使用dataSet中的所有表更新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");

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

        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&gt; = 2,但仍然只能获得1行。

编辑:似乎每次我都叫这行:

dataGridView2.DataSource = dataSet1.Tables[i2];

正在删除上一行。有没有办法追加这行呢?

2 个答案:

答案 0 :(得分:1)

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

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

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

dataSet1.WriteXml("MyData.xml")只写出该单个表的架构。因此,重读它只会回读一个表的架构值。

答案 1 :(得分:0)

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

while (i2 < dataSet1.Tables.Count)

尝试将其指向表格:

dataSet1.Tables["Yourtable"].Count