【问题标题】:How to Export DataSet to notepad?如何将数据集导出到记事本?
【发布时间】:2016-10-04 06:58:58
【问题描述】:

如何将数据集(多个数据表)导出到记事本。来自c#

注意:NOT A SINGLE DataTable ,Multiple DataTables From DataSet;

【问题讨论】:

  • 哪种格式? (xml, csv, json)
  • 转成.txt, html, and ,xpf 格式到我需要导出的这些
  • 如果我理解你的回复,如果我们选择txt格式导出类将生成一个包含所有数据集信息的txt文件(以简单的矩阵格式),如果我们设置xml输出导出类将生成表示数据集信息的 xml,如果我们想导出到 xpf,导出类将生成与 txt 文件相同的输出,但输出到 xpf 文件中?
  • @h herzi 我不明白
  • 你想导出到.txt文件,这意味着一个简单的输出不是数据集中的xml:表1:...表2:...而不是xml数据

标签: c# c#-4.0 c#-3.0 export-to-text


【解决方案1】:

我会建议一些简单的东西,创建一个翻译器或下载网络上可用的一堆其他库。

你最想去

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

然后调用具体类来实现该值,使用工厂模式、依赖注入等来提供具体类型。然后,您可以继续添加任意数量的转换器,以支持任意数量的文件类型。

【讨论】:

【解决方案2】:
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();
  }
 }
}

【讨论】:

  • @swetha 谢谢好的回答,它对我来说很好,它对我的​​大部分报告都有帮助
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-11-20
  • 1970-01-01
  • 2010-10-21
  • 2010-10-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多