2012-08-08 62 views
0

我的SQL查询检索一列多列。我用'|'存储了字符串分隔符来区分列。转换分隔符以输入字符

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

我的问题是有什么办法在之后|分隔栏下一行出现在textarea的下一行?就像按下输入键?

代码:

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); 

回答

2

尝试:

string.Join(@"|\r\n", sOutput, sOtherFaults, sClosedFault, sTemp); 
1

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

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

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

或者

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

Response.Write(sOutput); 
+2

我建议把'\ r \ n“改成'Environment.NewLine'。 – Dan 2012-08-08 07:05:28

+1

并且还使用String.Format – JohnnBlade 2012-08-08 07:05:55

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这将节省大量的中间串实例,但是,也回路结构非常适合。

相关问题