Enregistrement des données d'un DataGridView dans une BD SQL ser

efradit Messages postés 4 Date d'inscription mardi 5 mai 2015 Statut Membre Dernière intervention 6 mai 2015 - Modifié par efradit le 5/05/2015 à 23:18
Whismeril Messages postés 19025 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 19 avril 2024 - 6 mai 2015 à 19:09
Bonjour tt le monde,

Je suis débutante en c# et j'utilise Visual Studio 2010, et j'ai une application winform où je charge mes données à partir d'un fichier excel dans un datagridview (Etape que j'ai réussi à faire). Maintenant, je veux enregistrer ces données dans une table de ma base de données sql server (que j'ai créer sur Visual Studio déjà). Le problème que j'ai pas su comment faire cette deuxième étape. Est-ce que vous pouvez m'aider SVP? Je serai très reconnaissante.

Ici, je vous mets le code avec lequel j'ai remplis mon datagridview:
Code de chargement des données :
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Data.OleDb;

namespace projetBE
{
    public partial class Form1 : Form
    {

        public Form1()
        {

            InitializeComponent();
        }

        private void openFileButton_Click(object sender, EventArgs e)
        {
            openFileDialog1.ShowDialog();
        }

        private void openFileDialog1_FileOk(object sender, CancelEventArgs e)
        {
            string filePath = openFileDialog1.FileName;
            string extension = Path.GetExtension(filePath);
            string Excel03ConString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties='Excel 8.0;HDR={1}'";
            string Excel07ConString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties='Excel 8.0;HDR={1}'";
            string header = rbHeaderYes.Checked ? "YES" : "NO";
            string conStr;

            conStr = string.Empty;
            switch (extension)
            {

                case ".xls": //Excel 97-03
                    conStr = string.Format(Excel03ConString, filePath, header);
                    break;

                case ".xlsx": //Excel 07
                    conStr = string.Format(Excel07ConString, filePath, header);
                    break;
            }

            //Get all worksheet names from the Excel file selected using GetSchema of an OleDbConnection
            OleDbConnection connection = new OleDbConnection(conStr);
            connection.Open();
            DataTable tables = connection.GetSchema("Tables", new String[] { null, null, null, "TABLE" });
            connection.Dispose();

           //Add each table name to the combo box
           if (tables != null && tables.Rows.Count > 0)
           {
              worksheetsComboBox.Items.Clear();
              foreach (DataRow row in tables.Rows)
              {
                worksheetsComboBox.Items.Add(row["TABLE_NAME"].ToString());
              }
           }
           }

        private void worksheetsComboBox_SelectedIndexChanged(object sender, EventArgs e)
        {
            //Display the data from the selected Worksheet
            string filePath = openFileDialog1.FileName;
            string extension = Path.GetExtension(filePath);
            string Excel03ConString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties='Excel 8.0;HDR={1}'";
            string Excel07ConString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties='Excel 8.0;HDR={1}'";
            string header = rbHeaderYes.Checked ? "YES" : "NO";
            string conStr;

            conStr = string.Empty;
            switch (extension)
            {

                case ".xls": //Excel 97-03
                    conStr = string.Format(Excel03ConString, filePath, header);
                    break;

                case ".xlsx": //Excel 07
                    conStr = string.Format(Excel07ConString, filePath, header);
                    break;
            }

            OleDbDataAdapter adapter = new OleDbDataAdapter(String.Format("SELECT * FROM [{0}]", worksheetsComboBox.SelectedItem.ToString()), conStr);
            DataTable currentSheet = new DataTable();
            adapter.Fill(currentSheet);
            adapter.Dispose();

            excelDataGridView.DataSource = currentSheet;

        }
          



        }


    }



---------
J'explique un peu le code:
A chaque fois je charge mon fichier excel ce code me permet de récupérer les noms de mes feuilles excel et de parcourir ces différentes feuilles via un Combo Box et avec un click sur le nom de la feuille j'obtient mes données sur le datafridview.

Voilà mon pb, j'éspère que vous pouvez m'aider.

Merci d'avance.

Cordialement,

EDIT: Ajout de la coloration syntaxique.

4 réponses

efradit Messages postés 4 Date d'inscription mardi 5 mai 2015 Statut Membre Dernière intervention 6 mai 2015
6 mai 2015 à 15:17
SVP, quelqu'un peut m'aider!
0
Whismeril Messages postés 19025 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 19 avril 2024 656
6 mai 2015 à 15:34
Bonjour, il y a des exemples dans les sources pour enregistrer dans une base de données.
http://codes-sources.commentcamarche.net/source/list/c-net-13/last
0
efradit Messages postés 4 Date d'inscription mardi 5 mai 2015 Statut Membre Dernière intervention 6 mai 2015
6 mai 2015 à 15:45
Bonjour,

Merci Whismeril je veux les consulter :)


Bien à vous.
0
efradit Messages postés 4 Date d'inscription mardi 5 mai 2015 Statut Membre Dernière intervention 6 mai 2015
6 mai 2015 à 16:54
Bonjour Whismeril,
J'ai fais un petit tour dans les sources et j'ai trouvé que c un peu loion de ce que je cherche mais je veux essayer de le faire moi même. Tous ce que je cherche c'est un petit aide pour me guider sur le bon chemin. Sur ceci, je vous prendre votre avis: Est-ce que je dois faire des requetes INSERT à partir de mon datagridview,dans ma base de données? ou via un builder et un update? car pour le builder je trouve un problème à l'attacher à mon dataadapter qui m'a exécuter le fill dans le premier code?
J'explique plus:
SqlCommandBuilder cb = new SqlCommandBuilder(adapter);
l'adapter ici est un OleDbadapter! et je trouve pas la bonne manière pour mieux écrire ce bout de code.

Sinon pour l'insertion honnetement j'ai pas encore essayer mais j'ai regardé quelques exemples avec l'insert et je sais pas si avec la simple insertion je peux résoudre mon problème?

Donc voilà je cherche une idée avec laquelle je peux commencer. Merci d'avance.

Bien à vous.
0
Whismeril Messages postés 19025 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 19 avril 2024 656
6 mai 2015 à 19:09
Je ne fais pas de bases de données, donc pas bien placer te conseiller
0
Rejoignez-nous