1

DataSet(複数のデータテーブル)をメモ帳にエクスポートする方法。C#から

注: 単一の DataTable ではなく、DataSet からの複数の DataTable。

4

2 に答える 2

1

簡単なものを提案するか、トランスレータを作成するか、Web で利用可能な他のライブラリをダウンロードします。

あなたが一番行きたい

public interfacte IExport
{
   bool Export(Databale sometable);// this can also reference interface
   //concrete implementation could also handle saving of file
}

次に、具象クラスを呼び出してその値を実装し、ファクトリ パターン、依存性注入などを使用して具象型を提供します。その後、必要な数のファイル タイプをサポートするために、必要な数のコンバーターを追加し続けることができます。

于 2016-10-04T07:10:10.670 に答える
0
private  void Write(System.Data.DataSet dts, string outputFilePath)
{
   System.Data.DataTable dt = new System.Data.DataTable();
   for (int z = 0; z < dts.Tables.Count; z++)
   {
     dt = dts.Tables[z];
     int[] maxLengths = new int[dt.Columns.Count];    
     for (int i = 0; i < dt.Columns.Count; i++)
     {
       maxLengths[i] = dt.Columns[i].ColumnName.Length;    
       foreach (DataRow row in dt.Rows)
       {
         if (!row.IsNull(i))
         {
           int length = row[i].ToString().Length;    
            if (length > maxLengths[i])
            {
              maxLengths[i] = length;
            }
          }
       }
     }

   using (StreamWriter sw = new StreamWriter(outputFilePath, true))
    {     
    for (int i = 0; i < dt.Columns.Count; i++)
     {
                            sw.Write(dt.Columns[i].ColumnName.PadRight(maxLengths[i] + 2));
     }    
     sw.WriteLine();    
      foreach (DataRow row in dt.Rows)
      {
        for (int i = 0; i < dt.Columns.Count; i++)
        {
          if (!row.IsNull(i))
          {
                                    sw.Write(row[i].ToString().PadRight(maxLengths[i] + 2));
          }
          else
          {
           sw.Write(new string(' ', maxLengths[i] + 2));
          }
        }    
      sw.WriteLine();
    }  
    sw.Close();
  }
 }
}
于 2016-10-04T08:31:48.627 に答える