根据索引 index 或者名称 tableName
var ds = new System.Data.DataSet();
ds.Tables.AddRange(new System.Data.DataTable[] {
new System.Data.DataTable(), // index:=0
new System.Data.DataTable("table1"), // index:=1, name:=table1
new System.Data.DataTable("table2", "myns1"), // index:=2, name:=table2, namespace:=myns1
new System.Data.DataTable("table2", "myns2") // index:=3, name:=table2, namespace:=myns2
});
// 访问时
ds.Tables[0].Columns.Add("ID", typeof(int));
ds.Tables[1].Columns.Add("ID", typeof(int));
// ds.Tables["table1"].Columns.Add("ID", typeof(int)); 和上一句效果相同
// 根据 namespace 访问,namespace 不同时,允许表名重复
ds.Tables["table2", "myns1"].Columns.Add("ID", typeof(int));
ds.Tables["table2", "myns2"].Columns.Add("ID", typeof(int));
追问如果我声名的DataSet studs = new DataSet();里已经放了很多个DataTable了,用for循环或是foreach如何得到每一个DataTable呢?
追答foreach(var table in studs.Tables) { table ... }
for (int i = 0; i < studs.Tables.Count; i++) { var table = studs.Tables[i]; table... }