我的SQL查询检索多行的一行。我用字符串'|'存储了它分隔符以区分列。
然后在<textarea>
页面的.aspx
字段中打印该字符串。
我的问题是在那之后的任何方式分隔符下一列在textarea的下一行?就像按 Enter 键?
代码:
dtOutput = Generix.getData("dbo.EventMsg E Left Join dbo.ATMStatusHistory A On E.Code=A.Fault", "Distinct E.Fault_Short_Name", "A.Code In (" + sFaultNumber + ") And IsNull(Fault_Short_Name,'')<>''", "", "", 1);
sOtherFaults = "";
foreach (DataRow drOutput in dtOutput.Rows)
{
foreach (DataColumn dcOutput in dtOutput.Columns)
{
sOtherFaults += ((sOtherFaults == "") ? "" : ":") + Convert.ToString(drOutput[dcOutput]);
}
}
sOutput += "|" + sOtherFaults + "|" + sClosedFault + "|" + sTemp + "|";
Response.Write(sOutput);
答案 0 :(得分:2)
尝试:
string.Join(@"|\r\n", sOutput, sOtherFaults, sClosedFault, sTemp);
答案 1 :(得分:1)
我真的不明白你的意思,但试试这个
sOutput += "|" + sOtherFaults + "|" + sClosedFault + "|" + sTemp + "|";
Response.Write(sOutput.Replace("|", "\r\n"));
或者
sOutput += "|" + sOtherFaults + "|" + sClosedFault + "|" + sTemp + "\r\n";
Response.Write(sOutput);
答案 2 :(得分:1)
我认为你最好在这里使用StringBuilder
,就像这样。
var responseString = new StringBuilder(sOutput);
resposeString.AppendLine("|");
foreach (DataRow drOutput in dtOutput.Rows)
{
foreach (DataColumn dcOutput in dtOutput.Columns)
{
resposeString.AppendFormat("{0}:", Convert.ToString(drOutput[dcOutput]));
}
}
// Remove last : delimiter
responseString.Remove(responseString.Length - 1, 1);
resposeString.AppendLine("|");
resposeString.Append(sClosedFault);
resposeString.AppendLine("|");
resposeString.Append(sTemp);
Response.Write(responseString.ToString());
与String.Format
一样,这将节省大量的中间字符串实例化,但也非常适合循环结构。