一。手动编写DataSet:
有时候不想从数据库导出 DataSet,或者有其他的需要,要将数据库里的DataSet包装成另一个样子,这个时候,了解DataSet的内部结构就非常必要。DataSet的构造也比较简单:
一个DataSet里头有很多 DataTable
一个DataTable里头有很多 DataColumn 和很多 DataRow
从名字就能猜到它们大概是干什么的。。
ok,举例说明吧~
private DataSet CreatTable()
{
//创建一个Table 和 DataSet
DataTable table = new DataTable();
DataSet ds = new DataSet();
//创建一个列
DataColumn column1 = new DataColumn();
column1.DataType = System.Type.GetType("System.String");
column1.ColumnName = "Periord";
//创建一个列
DataColumn column2 = new DataColumn();
column2.DataType = System.Type.GetType("System.Int32");
column2.ColumnName = "Total";
//
//把列添加进去
table.Columns.Add(column1);
table.Columns.Add(column2);
//创建一个行
DataRow row1 = table.NewRow();
row1["Periord"] = "Monday";
row1["Total"] = 0;
DataRow row2 = table.NewRow();
row2["Periord"] = "Tuesday";
row2["Total"] = 0;
DataRow row3 = table.NewRow();
row3["Periord"] = "Wednesday";
row3["Total"] = 0;
DataRow row4 = table.NewRow();
row4["Periord"] = "Thursday";
row4["Total"] = 0;
DataRow row5 = table.NewRow();
row5["Periord"] = "Friday";
row5["Total"] = 0;
DataRow row6 = table.NewRow();
row6["Periord"] = "Saturday";
row6["Total"] = 0;
DataRow row7 = table.NewRow();
row7["Periord"] = "Sunday";
row7["Total"] = 0;
//把行添加进去
table.Rows.Add(row1);
table.Rows.Add(row2);
table.Rows.Add(row3);
table.Rows.Add(row4);
table.Rows.Add(row5);
table.Rows.Add(row6);
table.Rows.Add(row7);
//把 Table添加到 DataSet 里面去
ds.Tables.Add(table);
return ds;
}
二。遍历DataSet中的元素
贴一个不错的网上的代码
DataSet2 ds = new DataSet2();
SqlDataAdapter da1 = new SqlDataAdapter(str, conn);
da1.Fill(ds, "table");
//已经装载到DataSet数据集中了
for (int k = 0; k < ds.Tables["table"].Rows.Count; k++)
{
for (int j = 0; j < ds.Tables["table"].Columns.Count; j++)
{
if (ds.Tables["table"].Rows[k]["emergency"].ToString().Trim() == "1")
{
ds.Tables["table"].Rows[k]["emergency"] = "合格";
}
else if (ds.Tables["table"].Rows[k]["emergency"].ToString().Trim() == "0")
{
//emergency = "处置";
ds.Tables["table"].Rows[k]["emergency"] = "处置";
}
}
}
ds.AcceptChanges();