none
SELECT ET INSERT sous c# (ORCAS et 2005 express) RRS feed

  • Question

  •  

    Bonjour,

     

    j'aurais besoin de vos lumière pour corriger mon code sur les fonction SELECT ET INSERT. En effet aucune ne fonctionne.

     

    Voici mon code:

     

    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;

    using MySql.Data.MySqlClient;

     

     

    namespace WindowsFormsApplication2

    {

    public partial class Form1 : Form

    {

    private MySqlConnection ConnectionRessource;

    private MySqlConnection clientSelect;

    public Form1()

    {

    InitializeComponent();

    SqlConnection();

    }

    public Boolean SqlConnection()

    {

    string DBName = "courtage";

    string Server = "localhost";

    string Login = "root";

    string Password = "";

    string connectionString = "Server=" + Server +

    ";Database=" + DBName +

    ";User ID=" + Login +

    ";Password=" + Password + ";";

    try

    {

    ConnectionRessource = new MySqlConnection(connectionString);

    toolStripStatusLabel1.Text = "Ouverture de la connection … la table" + DBName + ".";

    ConnectionRessource.Open();

    toolStripStatusLabel1.Text = "connection ‚tablie avec succŠs … la table " + DBName + ".";

    return true;

    }

    catch (MySqlException myEx)

    {

    toolStripStatusLabel1.Text = "Error " + myEx.GetType() + " : Impossible de se connecter … la base de donn‚e.";

    return false;

    }

    }

    public Boolean selectClient()

    {

    //Cr‚ation de la commande

    string selectCommand = "SELECT * FROM contact;";

    clientSelect = new MySqlCommand(selectCommand); //Commande

    try //Proc‚dure de test

    {

    dataGridView1.Rows.Add(clientSelect); //Ici une faute - Lecture des donn‚es __ET__ affichage dans les ROWS!

    toolStripStatusLabel2.Text = "Liste des contacts charg‚ avec succŠs"; //Informations a l'utilisateur du succŠs

    return true;

    }

    catch (MySqlException myEx) //Erreur

    {

    toolStripStatusLabel2.Text = "Error " + myEx.GetType() + " : Impossible de lister les contacts"; //Information … l'utilisateur de l'erreur

    return false;

    }

    }

    public Boolean insertDonnee()

    {

    string sName = txtName.Text;

    string sFirstName = txtFirstName.Text;

    MySqlParameter paramID = new MySqlParameter("@id", MySqlDbType.Int16);

    paramID.Value = "";

    MySqlParameter paramName = new MySqlParameter("@name", MySqlDbType.VarChar);

    paramName.Value = sName;

    MySqlParameter paramFirstName = new MySqlParameter("@firstName", MySqlDbType.VarChar);

    paramFirstName.Value = sFirstName;

    string cmdInsert = string.Format("INSERT INTO contact(id, name, firstName) VALUES({0},{1},{2})",

    paramID.ParameterName, paramName.ParameterName,

    paramFirstName.ParameterName);

    MySqlCommand cmd = new MySqlCommand(cmdInsert.ToString(), ConnectionRessource);

    cmd.Parameters.Add(paramID);

    cmd.Parameters.Add(paramName);

    cmd.Parameters.Add(paramFirstName);

     

    try

    {

    cmd.ExecuteNonQuery();

    toolStripStatusLabel1.Text = "Donn‚e ajout‚ avec succŠs … la table.";

     

    return true;

    }

    catch (MySqlException myEx)

    {

    MessageBox.Show("Error: " + myEx + "Impossible d'ajout‚ les donn‚es");

    return false;

    }

    }

    private void Form1_Load(object sender, EventArgs e)

    {

    selectClient();

    }

    private void btnInsert_Click(object sender, EventArgs e)

    {

    insertDonnee();

    }

    }

    }

     

     

    actuellement mon erreur est:

     

    Error 1 Cannot implicitly convert type 'MySql.Data.MySqlClient.MySqlCommand' to 'MySql.Data.MySqlClient.MySqlConnection' C:\Users\Yannick\Documents\Visual Studio 2008\Projects\connectDB\WindowsFormsApplication2\Form1.cs 58 28 WindowsFormsApplication2

     

    Si quelqu'un pouvait m'aider à trouver la solution :/

     

     

    Je vous remercie de l'attention porté à mon message et vous souhaite un bon week-end

    vendredi 18 janvier 2008 14:34

Réponses

  • En fait, ce n'est pas le new le problème :

     

    clientSelect est défini comme un MySqlConnection, alors que tu essais d'assigner un MySqlCommand à cette valeur, donc il génère une erreur. Il te faut remplacer le clientSelect par une variable de type MySqlCommand.

    samedi 19 janvier 2008 22:14
    Modérateur

Toutes les réponses

  • Voici ton erreur :

    Extrait de code
    clientSelect = new MySqlCommand(selectCommand); //Commande

     

     

     

    Tu assigne un new MySqlCommand a une variable de type MySqlConnection. C'est tout.

    vendredi 18 janvier 2008 16:55
    Modérateur
  • Le problème si j'enlève le new:

    Erreur    1    'System.Data.SqlClient.SqlCommand' est un 'type' mais est utilisé comme un 'variable'    C:\Documents and Settings\Kiwi\Mes documents\Visual Studio 2005\Projects\Milow\Milow\Form1.cs    51    28    Milow

    vendredi 18 janvier 2008 23:41
  • En fait, ce n'est pas le new le problème :

     

    clientSelect est défini comme un MySqlConnection, alors que tu essais d'assigner un MySqlCommand à cette valeur, donc il génère une erreur. Il te faut remplacer le clientSelect par une variable de type MySqlCommand.

    samedi 19 janvier 2008 22:14
    Modérateur
  • J'ai remplacer, voici mon code:

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using System.Data.SqlClient;
    using System.Data.Sql;
    using MySql.Data.MySqlClient;

    namespace Milow
    {
        public partial class frmPrincipale : Form
        {
            private MySqlConnection myConnectionRessource;
            private MySqlCommand clientSelect;

            public Boolean myConnection()
            {
                string dbName = "millow";
                string server = "localhost";
                string login = "root";
                string password = "";

                string maConnection = "Server=" + server +
                    ";Database =" + dbName +
                    ";User ID =" + login +
                    ";Password =" + password + ";";

                try
                {
                    myConnectionRessource = new MySqlConnection(maConnection);
                    infosActionLabel.Text = "Ouverture de connection à la base " + dbName + ".";
                    myConnectionRessource.Open();
                    infosActionLabel.Text = "Connection à la base " + dbName + " établie. Bienvenue dans Millow.";

                    return true;
                }
                catch (MySqlException myEx)
                {
                    infosActionLabel.Text = "Erreur: " + myEx.GetType() + " : Impossible d'établir la connection à la table " + dbName + ".";

                    return false;
                }
            }

            public Boolean selectClient()
            {
                string selectCommand = "SELECT * FROM contact;";
                clientSelect = new MySqlCommand(selectCommand);
                try
                {
                   
                    dataGridView1.Rows.Add(clientSelect);
                    infosActionLabel.Text = "Liste des contacts chargés avec succès";

                    return true;
                }
                catch (MySqlException myEx)
                {
                    infosActionLabel.Text = "Error " + myEx.GetType() + " Impossible d'afficher les contacts";

                    return false;
                }
            }

            private MySqlCommand MySqlCommand(string selectCommand)
            {
                throw new Exception("The method or operation is not implemented.");
            }

            public frmPrincipale()
            {
                InitializeComponent();
                myConnection();
            }

             private void frmPrincipale_Load(object sender, EventArgs e)
             {
                 selectClient();
             }      

            private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
            {

            }
       }
    }

    Mais voilà que dans mon datagridview s'affiche:

    MySql.Data.MySqlClient.MySqlCommand à la place des informations qui figure dans ma base de donnée.

    samedi 19 janvier 2008 23:14
  • Edit: TOUT fonctionne, pour les suivant:

     

    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;

    using MySql.Data.MySqlClient;

    namespace WindowsFormsApplication2

    {

    public partial class Form1 : Form

    {

    private MySqlConnection ConnectionRessource;

    private MySqlCommand clientSelect;

    private MySqlCommand insertDonnees;

    private MySqlDataAdapter maSelectCommand = new MySqlDataAdapter();

    private DataSet ds = new DataSet();

    public Form1()

    {

    InitializeComponent();

    SqlConnection();

    }

    public Boolean SqlConnection()

    {

    string DBName = "courtage";

    string Server = "localhost";

    string Login = "root";

    string Password = "";

    string connectionString = "Server=" + Server +

    ";Database=" + DBName +

    ";User ID=" + Login +

    ";Password=" + Password + ";";

    try

    {

    ConnectionRessource = new MySqlConnection(connectionString);

    toolStripStatusLabel1.Text = "Ouverture de la connection … la table" + DBName + ".";

    ConnectionRessource.Open();

    toolStripStatusLabel1.Text = "connection ‚tablie avec succŠs … la table " + DBName + ".";

    return true;

    }

    catch (MySqlException myEx)

    {

    toolStripStatusLabel1.Text = "Error " + myEx.GetType() + " : Impossible de se connecter … la base de donn‚e.";

    return false;

    }

    }

    public Boolean selectClient()

    {

    try //Proc‚dure de test

    {

    //Cr‚ation de la commande

    string selectCommand = "SELECT * FROM contact;";

    maSelectCommand.SelectCommand = new MySqlCommand(selectCommand, ConnectionRessource);

    maSelectCommand.Fill(ds);

    dataGridView1.DataSource = ds.Tables[0];

    dataGridView1.Refresh();

    toolStripStatusLabel2.Text = "Liste des contacts charg‚ avec succŠs"; //Informations a l'utilisateur du succŠs

    return true;

    }

    catch (MySqlException myEx) //Erreur

    {

    toolStripStatusLabel2.Text = "Error " + myEx.GetType() + " : Impossible de lister les contacts"; //Information … l'utilisateur de l'erreur

    return false;

    }

    }

    public Boolean insertDonnee()

    {

    string sName = txtName.Text;

    string sFirstName = txtFirstName.Text;

    MySqlCommand insertDonnees = new MySqlCommand();

    insertDonnees.CommandText = "INSERT INTO contact(id, name, firstName) VALUES('', '" + sName + "', '" + sFirstName + "');";

    try

    {

    insertDonnees.Connection = ConnectionRessource;

    MySqlCommand insertExecuter = new MySqlCommand();

    MySqlDataReader executer = insertDonnees.ExecuteReader();

    toolStripStatusLabel1.Text = "Donn‚e ajout‚ avec succŠs … la table.";

    executer.Close();

    return true;

    }

    catch (MySqlException myEx)

    {

    MessageBox.Show("Error: " + myEx + "Impossible d'ajout‚ les donn‚es");

    return false;

    }

    }

    private void Form1_Load(object sender, EventArgs e)

    {

    selectClient();

    }

    private void btnInsert_Click(object sender, EventArgs e)

    {

    insertDonnee();

    selectClient();

    }

    }

    }

    lundi 21 janvier 2008 08:42
  • Excellente nouvelle!

    lundi 21 janvier 2008 12:38
    Modérateur