数据表单元格是否包含数据表?

时间:2009-09-07 22:03:28

标签: c# ado.net

如果不是我应该使用哪种结构?

4 个答案:

答案 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可以包含多个具有不同模式的数据表。您可以将第二个数据表存储在第二个表中,并将其引用到第一个表的行中。

您还可以使用WriteXmlReadXml方法将数据表存储到数据单元格中。

1:看看that answer1What 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

相关问题