4

DataTable複数の列と行を取得するものがあります。その列の1つ(「コメント」)にはデータが含まれています*。その文字を。に置き換えたい\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]);
   }
}

すべての列を1つの文字列にマージできます。ただし、文字を別の文字に置き換える方法は、。と同じ文字列に格納し"sOutput"ます。

4

3 に答える 3

5

foreach ループでは、列インデックス (「コメント」) に対してアクセスすることで行を変更し、string.Replace を使用して置き換えること"*"ができます。"\n"

foreach (DataRow drOutput in dtOutput.Rows)
{
     drOutput["Comments"] = drOutPut["Comments"].ToString().Replace('*','\n');
     //your remaining code
}
于 2012-12-05T11:33:34.377 に答える
3
foreach (DataRow row in dt.Rows)
    row.SetField<string>("Comment", 
       row.Field<string>("Comment").Replace("*", @"\n"));
于 2012-12-05T11:35:27.767 に答える
1
foreach (DataColumn dcOutput in dtOutput.Columns)
{                    
    sOutput += ((sOutput == "") ? "" : "|") + Convert.ToString((dcOutput.ColumnName=="Comments") ? drOutput[dcOutput].ToString().Replace("*","\n") : drOutput[dcOutput]);
}
于 2012-12-05T11:37:36.777 に答える