2011-12-01 72 views
0

我得到一些非結構化的數據。所以我希望它是結構化的形式。所以我在這個數據表中添加了兩列,即「字段」和「值」。現在我在數據中添加了第一行以及這兩列中的數據。但是,每次我再次將數據保存在這個數據表中時,它的概率就是它取代舊數據。我的代碼是:如何在數據表末尾添加值?

 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

它是什麼樣的應用程序?桌面,Web應用程序?如果您每次創建DataTable,它將只包含一行。你能展示更多的背景嗎? –

回答

1

使用數據表,你必須將它添加之前創建一個新的行:

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對象的行 屬性將其添加到DataRowCollection中,即 。當您使用NewRow創建新行時,在調用Clear之前,必須將行添加到數據表中或從中刪除行 。

但是,如果您只處理一個鍵/值對,爲什麼不使用Dictionary<string, string>

0

你在循環中使用它?只有最後一行應該在循環中,否則每個循環都要實例化數據表。

+0

你可以說它的循環,但我想要什麼,因爲我得到的新值應添加在數據表末尾作爲創建新行。 –