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;

結果のデータテーブルは次のようになります

既存の列 | 状態

既存の値 | ABC

于 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 に答える