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

谢谢

4

4 回答 4

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];
}
于 2013-06-28T14:07:14.043 回答
2

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

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

生成的数据表看起来像

现有专栏 | 地位

现有值 | 美国广播公司

于 2015-09-29T10:02:51.043 回答
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;
}
于 2013-06-28T14:05:33.757 回答
0
DBTable["First Name"] = firstName;
DBTable["Last Name"] = lastName;
于 2013-06-28T14:02:36.787 回答