2017-10-17 14 views
-1

Ce que je dois faire:Export DataBase (.mdb/.accdb) à .csv avec sélection de ligne

je besoin de charger une base de données, les entrées de recherche et d'exporter les colonnes sélectionnées.

Le problème:

je me suis un DataGrid (pas DataGridView) pour la liste et sélectionnez les entrées de la base de données et je ne peux pas obtenir une solution à exporter uniquement les lignes sélectionnées avec ; comme seperator.

code comment je charge et la liste des DataBase

using (OleDbConnection ODC = new OleDbConnection("Provider = Microsoft.Jet.OLEDB." + iOledDBVersion + "; Data Source = " + connectionString)) 
{ 
    OleDbCommand ODCmd = new OleDbCommand(insertSQL); 

    ODCmd.Connection = ODC; 
    ODC.Open(); 
    ODCmd.ExecuteNonQuery(); 

    //Data-Adapter erstellen 
    OleDbDataAdapter OleDbDataAdapter_Temp = new OleDbDataAdapter(insertSQL, ODC); 
    OleDbCommandBuilder OleDbCommandBuilder_Temp = new OleDbCommandBuilder(OleDbDataAdapter_Temp); 


    //Daten aus der Datenbank in Dataset speichern 
    OleDbDataAdapter_Temp.Fill(DataSet_DB, sTabelle); 

    // Schleife für jede Tabelle 
    for (int i = 0; i < DataSet_DB.Tables.Count; i++) 
    { 
     // Setzt die Spalten der DB in das DataGrid 
     DataGrid_Table.DataContext = DataSet_DB.Tables[i].DefaultView; 
    } 
} 

Est-il possible de propper d'exporter ces lignes?

+0

@demo Non isnt, je n'ai pas DataGridView et besoin d'exporter uniquement les lignes sélectionnées ... pls lire ma question bevor marquer comme dupliquer – Hille

+0

https://stackoverflow.com/questions/46784105/export-selection-from-datagrid-to-csv alors celui-ci – demo

+0

@demo je pensais que je crée une nouvelle question, parce que l'ancien peut aider les gens avec la sortie Problème, mais ceci est une autre question avec d'autres personnes nécessaires pour aider ... – Hille

Répondre

1

Il existe une propriété SelectedItems qui renverra les éléments sélectionnés dans DataGrid. Dans votre cas, vous pouvez chacun de ces éléments à un DataRowView, par exemple:

StringBuilder sb = new StringBuilder(); 
foreach(var selectedRow in DataGrid_Table.SelectedItems.OfType<DataRowView>()) 
{ 
    foreach(DataColumn column in selectedRow.DataView.Table.Columns) 
    { 
     sb.Append(selectedRow[column.ColumnName] + ";"); 
    } 
    sb.Append(Environment.NewLine); 
} 

string export = sb.ToString(); 
+0

vous devriez publier vos solutions sur un blog, je n'ai pas trouvé une solution de sulution/si facile après 3 h de recherche :) – Hille

+0

J'ai besoin de votre aide une fois de plus, je ne peux pas trouver un moyen d'obtenir tout l'index en-tête dans mon .csv, t oo. @ mm8 – Hille

+0

@Hille, Créez une ligne d'en-tête avec 'column.ColumnName'. Ajoutez-le avant dans votre fichier. –