2012-08-08 83 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這將節省大量的中間串實例,但是,也迴路結構非常適合。

相關問題