10
public void GenerateDetailFile()
{
  if (!Directory.Exists(AppVars.IntegrationFilesLocation))
  {
    Directory.CreateDirectory(AppVars.IntegrationFilesLocation);
  }

  DateTime DateTime = DateTime.Now;
  using (StreamWriter sw = File.CreateText(AppVars.IntegrationFilesLocation +
                                DateTime.ToString(DateFormat) + " Detail.txt"))
  {
    DataTable table = Database.GetDetailTXTFileData();

    foreach (DataRow row in table.Rows)
    {
      sw.WriteLine(row);
    }
  }
}

ここで何が欠けているのかわかりませんが、設定方法がわからない列名である可能性があります。

これは正常に機能していますが、テキストファイルに書き込むときは、次のように記述しています。

System.Data.DataRow
System.Data.DataRow
System.Data.DataRow
System.Data.DataRow
System.Data.DataRow
System.Data.DataRow
System.Data.DataRow
System.Data.DataRow
System.Data.DataRow
System.Data.DataRow

誰か私に手を貸してもらえますか?

4

6 に答える 6

19

そのような a を出力しようとすると、単に型の名前を出力するDataRowが呼び出されます。Object.ToString()あなたがしたいことは次のようなものです:

sw.WriteLine(String.Join(",", row.ItemArray));

これにより、DataRow.

于 2012-07-31T22:25:21.950 に答える
9

何かのようなもの:

sw.WriteLine(row["columnname"].ToString());

より適切でしょう。

于 2012-07-31T22:19:21.263 に答える
5

以下のコードでは、「|」で区切られた各列をテキスト ファイルに書き込むことができます。

    foreach (DataRow row in dt.Rows)
      {  
         object[] array = row.ItemArray;
         for (int i = 0; i < array.Length - 1; i++)
         {
           swExtLogFile.Write(array[i].ToString() + " | ");
         }
          swExtLogFile.WriteLine(array[array.Length - 1].ToString());             
     }

参考リンク

于 2015-08-12T09:16:53.680 に答える
4

DataRow には「自然な」文字列表現はありません。カンマで区切られた値のリストなど、任意の形式で書き出す必要があります。列を列挙して、それらの値を出力できます。たとえば、次のようになります。

foreach (DataRow row in table.Rows)
{
    bool firstCol = true;
    foreach (DataColumn col in table.Columns)
    {
        if (!firstCol) sw.Write(", ");
        sw.Write(row[col].ToString());
        firstCol = false;
    }
    sw.WriteLine();
}
于 2012-07-31T22:18:39.700 に答える
1

各 DataRow から列を書き込む必要があります。現在、dataRow.ToString() である DataRow オブジェクトを作成しているため"System.Data.DataRow"、ファイルに dataRow の文字列名を取得します

foreach(DataRow row in table.Rows)
{
 foreach(DataColumn column in table.Columns)
 {
  sw.WriteLine(row[column]);
 }
}
于 2012-07-31T22:19:26.997 に答える