如何在数据表的末尾添加值?

时间:2011-12-01 10:39:24

标签: asp.net datatable

我以非结构化形式获取一些数据。所以我希望它是结构化的形式。所以我在这里使用datatable我添加了两列,即“field”和“value”。现在我在数据中添加了第一行以及这两列中的数据。但问题是,每当我再次将数据保存在此数据表中时,它就会替换旧数据。我的代码是:

     DataTable dt = new DataTable();
            dt.Columns.Add("Field", typeof(string));
            dt.Columns.Add("Value", typeof(string));
            dt.Rows.Add(val.Substring(0, val.IndexOf(":") + 1), val.Substring(val.IndexOf(":") + 1, val.Length - val.IndexOf(":") - 1))

2 个答案:

答案 0 :(得分:1)

使用DataTable,您必须在添加之前创建一个新行:

DataTable dt = new DataTable();
dt.Columns.Add("Field", typeof(string));
dt.Columns.Add("Value", typeof(string));

var row = dt.NewRow();
dt["Field"] = "FieldName";
dt["Value"] = "Value";
dt.Rows.Add(row);

NewRow() documentation

  

您必须使用NewRow方法创建新的DataRow对象   与DataTable相同的架构。创建DataRow后,您可以添加它   通过DataTable对象的Rows到DataRowCollection   属性。使用NewRow创建新行时,行必须是   在调用Clear之前添加到数据表中或从数据表中删除。

但是,如果您只处理一个键/值对,为什么不使用Dictionary<string, string>

答案 1 :(得分:0)

你是在循环中使用它吗?只有最后一行应该在循环中,否则你将每个循环实例化数据表。