2013-06-28 40 views
2

這是我的問題。我正在嘗試使用我的數據表的全名字段,並將名稱分爲第一個和最後一個,然後將這些名稱添加到我的數據表的正確位置。到目前爲止,這是我的。如何將值添加到現有行的新數據表列中

DataTable DBTable = LoadMailingListContent(Location); 

List<string> fullNames = DBTable.Rows.OfType<DataRow>().Select(dr => dr.Field<string>(columnName)).ToList(); 

DBTable.Columns.Remove(columnName); 

DBTable.Columns.Add("First Name"); 
DBTable.Columns.Add("Last Name"); 

foreach (string fullname in fullNames) 
{ 
    var names = fullname.Split(' '); 
    string firstName = names[0]; 
    string lastName = names[1]; 

    //here is where I want to add the new name values into their new fields 
} 

能設置我的foreach循環內的計數器和依賴於該行的指數將名稱添加回來?我需要關於如何將新的名字和姓氏值添加回我的新字段的幫助。

感謝

回答

3

嘗試

DataTable DBTable = LoadMailingListContent(Location); 

DataColumn dc = new DataColumn("FirstName"); 
DBTable.Columns.Add(dc); 
dc = new DataColumn("LastName"); 
DBTable.Columns.Add(dc); 
foreach (DataRow d in DBTable.Rows) 
{ 
    var names = d["fullname"].ToString().Split(' '); 
    d["FirstName"] = names[0]; 
    d["LastName"] = names[1]; 
} 
+0

這看起來不錯!我沒有想過要這樣做,因爲它知道哪一行。謝謝你的幫助。一旦我開始工作,我會更新答案。 – Mitch

+0

@Mitch不客氣。事情比你想象的更簡單:) –

0
DBTable["First Name"] = firstName; 
DBTable["Last Name"] = lastName; 
1
for (int iter = 0; iter < fullNames.Count; iter++) 
{ 
    var names = fullNames[iter].Split(' '); 
    string firstName = names[0]; 
    string lastName = names[1]; 
    DBTable.Rows[iter]["First Name"] = firstName; 
    DBTable.Rows[iter]["Last Name"] = lastName; 
} 
2

下面是簡單的例子來添加列並將其值改爲現有的數據表。

string status = "ABC"; 
     DataColumn dc = new DataColumn("Status"); 
     dt.Columns.Add(dc); 
     foreach (DataRow dr in dt.Rows) 
     { 
      dr["status"]= status; 
     } 
     return dt; 

結果DataTable的樣子

ExistingColumn |狀態

ExistingValue | ABC

相關問題