2010-12-16 83 views

回答

6
var builder = new StringBuilder() 

foreach(var row in dataSet.Tables.First().Rows) 
{ 
    foreach(var cell in row.ItemArray) 
    { 
     builder.Append(cell.ToString()); 
     if(cell != row.Cells.Last()) 
     builder.Append("\t"); 
    } 
    builder.Append(Environment.NewLine); 
} 

var file = new FileStream(filePath); 
var writer = new StreamWriter(file); 
writer.Write(builder.ToString()); 
writer.Flush(); 
writer.Close(); 
0

試試這個;

string updatefilePath = Server.MapPath("Files\\newoutput.PIPE"); 

    StreamWriter sw = new StreamWriter(updatefilePath, false); 
    int iColCount = dt.Columns.Count; 
    for (int i = 0; i < iColCount; i++) 
    { 
     sw.Write(dt.Columns[i]); 

     if (i < iColCount - 1) 
     { 
      sw.Write("|"); 
     } 
    } 
    sw.Write(sw.NewLine); 

    foreach (DataRow row in dt.Rows) 
    { 
     for (int i = 0; i < iColCount; i++) 
     { 
      if (!Convert.IsDBNull(row[i])) 
      { 
       sw.Write(row[i].ToString()); 
      } 
      if (i < iColCount - 1) 
      { 
       sw.Write("|"); 
      } 
     } 
     sw.Write(sw.NewLine); 
    } 
    sw.Close(); 
2

同樣的問題在這裏。爲您提供了一個更好的:

var builder = new StringBuilder(); 
foreach (DataRow row in dataSet.Tables.First().Rows) { 
    builder.AppendLine(String.Join("\t", row.ItemArray)); 
} 
File.WriteAllText(filePath, builder.ToString()); 

它更緊湊,可能更快一點。

相關問題