如果不是这个结构,我应该使用哪种结构?
DataTable
单元格中添加一个新的 DataTable
。
简单示例:DataTable
的主表:DataTable people = new DataTable();
people.Columns.Add("Name", typeof(string));
people.Columns.Add("Friends", typeof(DataTable));
定义子表:
DataTable friends = new DataTable();
friends.Columns.Add("Name", typeof(string));
friends.Columns.Add("Desire", typeof(string));
向子表添加一些数据:
friends.Rows.Add("Scarecrow", "brain");
friends.Rows.Add("Tin Woodman", "heart");
friends.Rows.Add("Cowardly Lion", "courage");
最后,向主表添加一行:
people.Rows.Add("Dorothy", friends);
要从主表获取子表,您需要将对象转换为 DataTable
:
DataTable output = (DataTable)people.Rows[0]["Friends"];
DataRelation
。如果您确实希望在单元格中拥有更结构化的数据,那么可能需要使用类似xml或其他序列化格式的东西。DataRow dr = new DataRow();
DataTable dtable = dr[0].Table
MSDN:DataRow的DataTable属性:获取此行具有模式的DataTable。
示例和说明:http://msdn.microsoft.com/en-us/library/system.data.datarow.table.aspx
DataRow dr = new DataRow()
。我相信 DataRow 的构造函数是 .Net 内部的,只能通过 DataTable.NewRow()
这样的方式访问,它返回一个新的 DataRow 并引用拥有表模式的所有者表。 - IAbstract