如何将值添加到现有行的新数据表列中

时间:2013-06-28 13:58:05

标签: c#

这是我的问题。我试图获取我的数据表的全名字段并将名称分成第一个和最后一个然后将这些名称添加回我的数据表中的正确位置。到目前为止,这就是我所拥有的。

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循环中设置一个计数器,并根据行的索引添加名称吗?我需要有关如何将新的名字和姓氏值添加回我的新字段的帮助。

感谢

4 个答案:

答案 0 :(得分:4)

尝试

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];
}

答案 1 :(得分:2)

下面是将列及其值添加到现有数据表的简单示例。

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

生成的数据表看起来像

ExistingColumn |状态

ExistingValue | ABC

答案 2 :(得分: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;
}

答案 3 :(得分:0)

DBTable["First Name"] = firstName;
DBTable["Last Name"] = lastName;