2016-10-04 3 views
1

Comment exporter DataSet (multiple de Datatables) à un bloc-notes. De C#Comment exporter DataSet au bloc-notes?

Remarque: NOT A DataTable UNIQUE, plusieurs DataTables From DataSet;

+0

Quel format? (xml, csv, json) –

+0

à .txt, html, et, xpf Format à ceux-ci je dois exporter –

+0

Si je comprends votre réponse, si nous choisissons le format txt la classe d'exportation produira un fichier txt avec toutes les informations de jeu de données (dans un format matriciel simple), si nous définissons la sortie xml, la classe export produira le xml qui représente les informations de l'ensemble de données et si nous voulons exporter vers xpf, la classe export produira la même sortie que le fichier txt mais dans un fichier xpf. –

Répondre

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(); 
    } 
} 
} 
+0

@ swetha merci bonne réponse ça marche très bien pour moi, ça aide à ma plupart des rapports –

1

Je suggère quelque chose de simple, créer un traducteur ou télécharger un tas d'autres bibliothèques disponibles sur le web.

vous aimeriez le plus aller

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

puis appeler une classe concrète pour mettre en œuvre cette valeur, utilisez une injection usine Patter, dépendance, etc pour fournir le type de béton. Vous pouvez ensuite ajouter autant de convertisseurs pour prendre en charge autant de types de fichiers que vous le souhaitez.

+0

qui sont les bibliothèques que j'ai besoin de télécharger, j'ai cherché beaucoup j'ai seulement exportable datatable à un bloc-notes, pas dataSet (hving plus de 2 datatables) à un seul bloc-notes –

+0

D'abord vous pouvez utiliser une boucle for sur un datatable, aussi Microsoft C# a une méthode witeXml] (https://msdn.microsoft.com/en-us/library/x3zy2whb (v = vs.110) .aspx), pour txt, rend le format CSV pour faciliter le passage, [Microsoft aussi a un document Création Xps facile] (https://msdn.microsoft.com/en-us/library/ms771596 (v = vs.100) .aspx) que vous pouvez vérifier, il existe également un exemple de code simple sur [Stackoverflow ] (http://stackoverflow.com/questions/352540/how-to-create-an-xps-document) sur la façon de créer le fichier. – mahlatse