我以非结构化形式获取一些数据。所以我希望它是结构化的形式。所以我在这里使用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))
答案 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方法创建新的DataRow对象 与DataTable相同的架构。创建DataRow后,您可以添加它 通过DataTable对象的Rows到DataRowCollection 属性。使用NewRow创建新行时,行必须是 在调用Clear之前添加到数据表中或从数据表中删除。
但是,如果您只处理一个键/值对,为什么不使用Dictionary<string, string>
?
答案 1 :(得分:0)
你是在循环中使用它吗?只有最后一行应该在循环中,否则你将每个循环实例化数据表。