Inserer donne dans une base de donnee en C# en mode deconnecte

cs_kakashi05 Messages postés 2 Date d'inscription mercredi 6 février 2008 Statut Membre Dernière intervention 31 mai 2009 - 29 mai 2009 à 15:59
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 - 26 mai 2014 à 18:55
Bonjour en faite je debut en C# je suis entrain de faire un petit formulaire comportant une textbox et un bouton qui devra envoyer les donnees dans une base de donnee pour le faire j'utilise le mode deconnecté mais j'arrive à inserer les donnees dans la base lorsque je clique sur le bouton je vous montre mon code si quelqu'un à une idee je suis preneur merci d'avance

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.Data.SqlClient;

namespace Ultime_deconnecte
{
    public partial class Form1 : Form
    {
        //Declaration des composants de nos fonctions
        public SqlConnection connection;
        public SqlDataAdapter myDa;
        public DataSet myDs;

        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            //on va instancer
            connection = new SqlConnection();
            myDa = new SqlDataAdapter();
            myDs = new DataSet();

            //on va etablir la connection avec la base de donnee
            connection.ConnectionString = "Data Source=(local)\\SQLEXPRESS;Initial Catalog=leader-database;Integrated Security=True;Pooling=False ";
            //on va utiliser la fonction SelectCommand pour selectionner des objets dans notre tables
            myDa.SelectCommand = new SqlCommand();
            myDa.SelectCommand.Connection = connection;
            myDa.SelectCommand.CommandText = "SELECT * FROM Categories";

        }

        private void button1_Click(object sender, EventArgs e)
        {
            //Declaration de ma commande Insert

            myDa.InsertCommand = new SqlCommand();
            myDa.InsertCommand.Connection = connection;
            myDa.InsertCommand.CommandText = "INSERT INTO Categories (Name)" +
                                             "VALUES(@name)";
            myDa.InsertCommand.Parameters.Add("@name", SqlDbType.NVarChar, 50, "Name");

        }
    }
}

3 réponses

cs_kakashi05 Messages postés 2 Date d'inscription mercredi 6 février 2008 Statut Membre Dernière intervention 31 mai 2009
31 mai 2009 à 16:26
Merci pour l'explication et le lien mais apres quelque modification je sais pas comment faire une action sur mon bouton lorsque je fais cliquer pour qu'il execute l'insertion dans la base de donnee je vous montre mon code en faite j'aimerai le faire son passé par une datagrivew on doit utiliser une commande de ce genre dataGridView1.DataSource =
                myDS.Tables["Categories"].DefaultView;

mais moi j'aimerai l'envoyer directement dans la base de donnee quel genre de commande dois je utiliser au niveau de mon bouton merci d'ance

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.Data.SqlClient;

namespace test_simple_deconnecte
{
    public partial class Form1 : Form
    {
        public SqlConnection connection = new SqlConnection();
        public SqlDataAdapter myDa = new SqlDataAdapter();
        public DataSet myDs = new DataSet();

        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            //connection à la base
            connection.ConnectionString = "Data Source=(local)\\sqlexpress;Initial Catalog=SaberatourSQL;Integrated Security=True";
           
            //On va selection le contenu de la base
            myDa.SelectCommand = new SqlCommand();
            myDa.SelectCommand.Connection = new SqlConnection();
            myDa.SelectCommand.Connection = connection;
            myDa.SelectCommand.CommandText = "SELECT * FROM T_PAYS";
            myDa.Fill(myDs,"T_PAYS");
           
           
            //On va inseré des donnees dans notre base
            myDa.InsertCommand = new SqlCommand();
            myDa.InsertCommand.Connection = new SqlConnection();
            myDa.InsertCommand.Connection = connection;
            myDa.InsertCommand.CommandText = "INSERT INTO T_PAYS (P_LIBELLE)" + "VALUES(@libelle)";
            myDa.InsertCommand.Parameters.Add("@libelle", SqlDbType.NVarChar, 250, "P_LIBELLE");
           
           
           
            //On va definir la Update
            myDa.UpdateCommand = new SqlCommand();
            myDa.UpdateCommand.Connection = new SqlConnection();
            myDa.UpdateCommand.Connection = connection;
            myDa.UpdateCommand.CommandText = "UPDATE FROM T_PAYS ";
          
   
        }
        private void button1_Click(object sender, EventArgs e)
        {
          
          
        }
    }
}
3
cs_Robert33 Messages postés 834 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 14 janvier 2017 33
29 mai 2009 à 22:55
Bonsoir,

Là on ne voit qu'une partie du code, la création du SqlDataAdapter.
il manque la partie d'execution.

L'objet SqlDataAdapter sert de joint entre la base de données et un dataset.
il possede 2 methodes pour récuperer ou envoyer des données:
Fill : récupere les données de la base pour remplir le dataset
Update : dans l'autre sens.
Lors d'un update, le couple DataSet et SqlDataAdapter vont s'allier pour utiliser les methodes adéquates (Update, Insert ou Delete)
ensuite il faudra dire au DataSet que la mise à jour à été faite (methode AcceptChange du DataSet).

jette une oeil là : http://msdn.microsoft.com/fr-fr/library/system.data.sqlclient.sqldataadapter.aspx

C# is amazing, enjoy it!
0
sasouki123 Messages postés 1 Date d'inscription lundi 26 mai 2014 Statut Membre Dernière intervention 26 mai 2014
26 mai 2014 à 15:53
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 656
26 mai 2014 à 16:04
Bonjour, merci pour ton intervention, mais il faut espéré pour le demandeur que depuis 8 ans, il a trouvé une solution.
Je ferme le sujet pour éviter de nouveaux déterrages.
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 656
26 mai 2014 à 18:55
Je me permets de réouvrir le sujet, car je n'ai pas pu commenté ton tuto sur ton site, alors je le fait ici

c'est bien ça fait ce que le titre dit (bine qu'il n'y soit pas précisé qu'il s'agit d'une base MySQL),
quelques remarques cependant:

-tout d'abord il est dommage (voir pénible au bout d'un moment) d'attendre que tu aies tapé ton texte. Enregistrer le son aurait été bien mieux, ou à défaut faire défiler un powerpoint avec ton texte préparé.

-Il faut un écran et une résolution de ouf pour voir ce qui se passe dans visual studio (sur mon 21,5 pouces 1920*1080 c'est tout juste net, alors je ne te dis pas sur ma tablette ou mon vieux portable au boulot....)

-Ajouter une référence à un projet, n'est pas installer un driver, c'est ajouter une référence à quelque chose qui est déjà installé.

Au final, 16 minutes pour 10 lignes de code, certes justes et correctes, c'est un peu long.
0
Rejoignez-nous