Datagridview (vue SQL) à exporter en fichier TXT... comment faire ?

stef93420 Messages postés 2 Date d'inscription vendredi 13 juillet 2007 Statut Membre Dernière intervention 26 juin 2008 - 22 juin 2008 à 21:17
bubbathemaster Messages postés 339 Date d'inscription dimanche 26 janvier 2003 Statut Membre Dernière intervention 25 mars 2009 - 24 juin 2008 à 06:14
Bonjour,

Je cherche à exporter le contenu q'une datagridview contenant le résultat d'une view sql server vers un fichier texte.
Je précise que j'ai fait au plus simple pour incorporer ce datagridview dans un form en faisant un glisser-déposer depuis la barre "source de données" => création automatique d'un DataSet, d'un TableAdapter & d'un BindingNavigator.
Je me demande si c'était la meilleure méthode ou si je devais incorporer un datarid/datagridview "vierge" que je chargerai via un événement type "choix par menu". Ce datagrid me sert à prévisualiser le résultat de la requête sql avant de lancer l'export en TXT via un bouton.

Merci par avance pour votre aide.

3 réponses

bubbathemaster Messages postés 339 Date d'inscription dimanche 26 janvier 2003 Statut Membre Dernière intervention 25 mars 2009 4
23 juin 2008 à 06:24
Et si par exemple, tu utilisais un StreamWriter et que tu parcourais les rows de ta DGV avec une boucle.

Allez un petit effort.
0
stef93420 Messages postés 2 Date d'inscription vendredi 13 juillet 2007 Statut Membre Dernière intervention 26 juin 2008
23 juin 2008 à 22:33
Méthode déja essayé mais j'ai du oublier quelque chose au niveau syntaxe...
0
bubbathemaster Messages postés 339 Date d'inscription dimanche 26 janvier 2003 Statut Membre Dernière intervention 25 mars 2009 4
24 juin 2008 à 06:14
Tiens c'est le code que j'ai écris pour un de mes programmes:

/// <summary>
        /// Export DGV datas to CSV format
        /// </summary>
        ///

        ///

        /// <returns>True on success, false upon failure</returns>
        public static bool exportDGV(DataGridView dgv, string fileName)
        {
            try
            {
                using (StreamWriter sw = new StreamWriter(fileName))
                {
                    //write column headers
                    string line = "";
                    for (int i = 0; i < dgv.Columns.Count; i++ )
                    {
                        if (dgv.Columns[i].Visible)
                            line += Tools.escapeCSVString(dgv.Columns[i].HeaderText) + ",";
                    }
                    line = line.TrimEnd(',');
                    sw.WriteLine(line);

                    //write data
                    for (int i = 0; i < dgv.Rows.Count; i++)
                    {
                        line = "";
                        for (int j = 0; j < dgv.Columns.Count; j++)
                        {
                            if (dgv.Columns[j].Visible)
                            {
                                line += Tools.escapeCSVString(dgv[j, i].FormattedValue.ToString()) + ",";
                            }
                        }
                        line = line.TrimEnd(',');
                        sw.WriteLine(line);
                    }
                }

                return true;
            }
            catch
            {
                return false;
            }
        }

/// <summary>
        /// Escape a string to respect RFC 4180 standard
        /// </summary>
        ///

        /// <returns></returns>
        public static string escapeCSVString(string s)
        {
            if (s.Contains(","))
            {
                s = s.Replace(""", """");
                s = """ + s + """;
                return s;
            }
            else
            {
                return s;
            }
        }
0
Rejoignez-nous