0

我的 SQL 查询检索一行多列。我用'|'将它存储在字符串中 用于区分列的分隔符。

<textarea>然后在页面字段中打印该字符串.aspx

我的问题是在那之后有什么办法吗?分隔符下一列出现在文本区域的下一行?就像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);
4

3 回答 3

2

尝试:

string.Join(@"|\r\n", sOutput, sOtherFaults, sClosedFault, sTemp);
于 2012-08-08T07:07:41.730 回答
1

我认为你最好在StringBuilder这里使用 a ,像这样。

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这样将节省大量中间字符串实例化,但也非常适合循环结构。

于 2012-08-08T08:03:53.190 回答
1

我真的不明白你的意思,但试试这个

 sOutput += "|" + sOtherFaults + "|" + sClosedFault + "|" + sTemp + "|";

 Response.Write(sOutput.Replace("|", "\r\n"));

或者

 sOutput += "|" + sOtherFaults + "|" + sClosedFault + "|" + sTemp + "\r\n";

 Response.Write(sOutput);
于 2012-08-08T07:03:15.857 回答