如果不是我应该使用哪种结构?
答案 0 :(得分:9)
您可以将新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"];
答案 1 :(得分:3)
DataSet可以包含多个具有不同模式的数据表。您可以将第二个数据表存储在第二个表中,并将其引用到第一个表的行中。
您还可以使用WriteXml和ReadXml方法将数据表存储到数据单元格中。
1:看看that answer。 1:What are useful JavaScript methods that extends built-in objects?
答案 2 :(得分:1)
假设您的意思是将其保留在数据库中,那么查看外键/ DataRelation
会更好。如果确实想要在单元格中使用更多结构化数据,那么可能是像xml或其他一些序列化格式。
答案 3 :(得分:0)
根据我从你的问题推断,你可以这样说:
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