0

dataGridView を dataSet 内のすべてのテーブルで更新できません。データを入力しようとした後、dataGridView に 1 行だけ取​​得します。

これを呼び出して、データセットを埋めます。

            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 に複数のエントリがあっても、1 行しか読み込まれません。

        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++;
        }

この後、テーブルの数ではなく、1 行のみが表示されます。dataSet1.Tables.Count >= 2 ですが、まだ 1 行しか取得できません。

編集:この行を呼び出すたびに:

dataGridView2.DataSource = dataSet1.Tables[i2];

前の行を削除しています。代わりに行を追加する方法はありますか?

4

2 に答える 2

1

データセットにテーブルを 1 つだけ作成したため、whileステートメントは 1 回だけ実行されます。

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

Count= 1 (テーブルの数) はdataSet1.Tables.Add(table);1 回しか呼び出していないためです。

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 に答える