private void GenerateTestData(out DataSet ds,
out DataTable dtMainInDS,
out DataTable dtChildInDS,
out DataTable dtMain)
{
ds = new DataSet("MyDataSet");
// Create a primary table and populate it with some data. Make a
// copy of the primary table and put it into the dataset.
dtMain = new DataTable("Main");
dtMain.Columns.Add(new DataColumn("ID", typeof(int)));
dtMain.Columns.Add(new DataColumn("Data", typeof(string)));
DataRow row = dtMain.NewRow();
row["ID"] = 1;
row["Data"] = "One";
dtMain.Rows.Add(row);
row = dtMain.NewRow();
row["ID"] = 2;
row["Data"] = "Two";
dtMain.Rows.Add(row);
row = dtMain.NewRow();
row["ID"] = 3;
row["Data"] = "Three";
dtMain.Rows.Add(row);
dtMainInDS = dtMain.Copy();
ds.Tables.Add(dtMainInDS);
// Create a child table. Make a copy of the child table and put
// it into the dataset.
dtChildInDS = new DataTable("Child");
dtChildInDS.Columns.Add(new DataColumn("ID", typeof(int)));
dtChildInDS.Columns.Add(new DataColumn("PID", typeof(int)));
dtChildInDS.Columns.Add(new DataColumn("ChildData", typeof(string)));
row = dtChildInDS.NewRow();
row["ID"] = 1;
row["PID"] = 1;
row["ChildData"] = "Parent1Child1";
dtChildInDS.Rows.Add(row);
row = dtChildInDS.NewRow();
row["ID"] = 2;
row["PID"] = 1;
row["ChildData"] = "Parent1Child2";
dtChildInDS.Rows.Add(row);
row = dtChildInDS.NewRow();
row["ID"] = 3;
row["PID"] = 2;
row["ChildData"] = "Parent2Child3";
dtChildInDS.Rows.Add(row);
ds.Tables.Add(dtChildInDS);
// Set up the relation in the dataset.
ds.Relations.Add(new DataRelation("MainToChild",
dtMainInDS.Columns["ID"],
dtChildInDS.Columns["PID"]));
}