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

Signaler
Messages postés
4
Date d'inscription
mardi 5 mai 2015
Statut
Membre
Dernière intervention
6 mai 2015
-
Messages postés
15628
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
27 février 2021
-
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

Messages postés
4
Date d'inscription
mardi 5 mai 2015
Statut
Membre
Dernière intervention
6 mai 2015

SVP, quelqu'un peut m'aider!
Messages postés
15628
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
27 février 2021
516
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
Messages postés
4
Date d'inscription
mardi 5 mai 2015
Statut
Membre
Dernière intervention
6 mai 2015

Bonjour,

Merci Whismeril je veux les consulter :)


Bien à vous.
Messages postés
4
Date d'inscription
mardi 5 mai 2015
Statut
Membre
Dernière intervention
6 mai 2015

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.
Messages postés
15628
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
27 février 2021
516
Je ne fais pas de bases de données, donc pas bien placer te conseiller