在DataTable的DataColumn中将字符串替换为另一个字符串

时间:2012-12-05 11:31:07

标签: c#

我有DataTable检索多个列和行。其中一列(“评论”)包含数据*。我想用\n替换该字符。

dtOutput = Generix.getTickets(DateTime.Parse("1-1-1900"), DateTime.Now,"",iTicket, "", "", "", "","",iDispatched,uCode);
string sOutput = "";
foreach (DataRow drOutput in dtOutput.Rows)
{
   sOutput += ((sOutput == "") ? "" : "~");
   foreach (DataColumn dcOutput in dtOutput.Columns)
   {                                    
      sOutput += ((sOutput == "") ? "" : "|") + Convert.ToString(drOutput[dcOutput]);
   }
}

我能够合并一个String中的所有列。 但是如何将字符替换为另一个字符存储在"sOutput"的相同字符串中。

3 个答案:

答案 0 :(得分:3)

foreach (DataRow row in dt.Rows)
    row.SetField<string>("Comment", 
       row.Field<string>("Comment").Replace("*", @"\n"));

答案 1 :(得分:2)

在foreach循环中,您可以通过访问列索引(“Comments”)来修改行,并使用string.Replace将"*"替换为"\n"

foreach (DataRow drOutput in dtOutput.Rows)
{
     drOutput["Comments"] = drOutPut["Comments"].ToString().Replace('*','\n');
     //your remaining code
}

答案 2 :(得分:1)

foreach (DataColumn dcOutput in dtOutput.Columns)
{                    
    sOutput += ((sOutput == "") ? "" : "|") + Convert.ToString((dcOutput.ColumnName=="Comments") ? drOutput[dcOutput].ToString().Replace("*","\n") : drOutput[dcOutput]);
}