Erreur lors d'un INSERT INTO [Résolu]

Signaler
Messages postés
3
Date d'inscription
lundi 25 juillet 2011
Statut
Membre
Dernière intervention
26 juillet 2011
-
Messages postés
3
Date d'inscription
lundi 25 juillet 2011
Statut
Membre
Dernière intervention
26 juillet 2011
-
Bonjour,



j'ai cette erreur quand je fais un nouvel ah=jouts dans ma base de donnée, via mon site en aspx.



La référence d'objet n'est pas définie à une instance d'un objet.



Voici mon code
protected void BtnEnvpersonnel_Click(object sender, EventArgs e)
  {
    //Connection Serveur
    try
    {
      string ConnectionStrings = ConfigurationManager.ConnectionStrings["christophe-pc/sqlexpress.master.dbo"].ToString();
    }

    catch (Exception E)
    {
      lblMessage.Text = E.Message;
    }
    // Inserer les données

    // on récupere les données du formulaire.
    string persoNom = TxtBxName.Text;
    string persoPrenom = TxtBxLastName.Text;
    string persoAge = TxtBxAge.Text;
    string persoMetier = TxtBxMetier.Text;
    string persoExpe = TxtBxExpe.Text;
    string persoSpec = TxtbxSpec.Text;
    int persoRestoId = DropDownListIdResto.SelectedIndex;

    // on ajoute les nouvelles données à la base.


    string vs_chaine = "INSERT INTO [SiteResto].[dbo].[Personnel] ([Name],[lastName],[Metier],[Age],[Specialite],[Experience],[IDResto]) VALUES (,@persoNom,@persoPrenom,@persoAge,@persoMetier,@persoExp,@persoSpec,@persoRestoId)";

    SqlCommand comm = new SqlCommand(vs_chaine);


    comm.Parameters.Add(new SqlParameter("@persoNom", SqlDataSource1));
    comm.Parameters["@persoNom"].Value = persoNom;

    comm.Parameters.Add(new SqlParameter("@persoPrenom", SqlDataSource1));
    comm.Parameters["@persoPrenom"].Value = persoPrenom;

    comm.Parameters.Add(new SqlParameter("@persoAge", SqlDataSource1));
    comm.Parameters["@persoAge"].Value = persoAge;

    comm.Parameters.Add(new SqlParameter("@persoMetier", SqlDataSource1));
    comm.Parameters["@persoMetier"].Value = persoMetier;

    comm.Parameters.Add(new SqlParameter("@persoExp", SqlDataSource1));
    comm.Parameters["@persoExp"].Value = persoExpe;

    comm.Parameters.Add(new SqlParameter("@persoSpec", SqlDataSource1));
    comm.Parameters["@persoSpec"].Value = persoSpec;

    comm.Parameters.Add(new SqlParameter("@persoRestoId", SqlDataSource1));
    comm.Parameters["@persoRestoId"].Value = persoRestoId;
  }
 


Dans mon fichier web.config
<connectionStrings>
    
    
  </connectionStrings> 



Merci


Autodidacte de 48 ans

3 réponses

Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
306
Bonjour,

il me semble que le problème vient de vs_chaine qui a un format assez étrange. Peux tu nous donner la trace de l'erreur ?

(Je modifie le titre de ta question, pense à en utiliser un plus précis la prochaine fois).

Bon courage

Julien
Messages postés
3
Date d'inscription
lundi 25 juillet 2011
Statut
Membre
Dernière intervention
26 juillet 2011

Bonjour,

Pour expliquer, j'avais pas déclaré mes variables en extérieur.
j'avais mal mis dans l'ordre mes Values.
et j'avais mal déclaré mon ConnectionStrings["AjoutPersonnel"]

voilà mais il m'a fallut 7 heures de recherches pour comprendre.
Dommage que je ne trouve pas de tutoriels qui explique les bases des requètes Sql pour C#.



Autodidacte de 48 ans
Messages postés
3
Date d'inscription
lundi 25 juillet 2011
Statut
Membre
Dernière intervention
26 juillet 2011

Bonjour,

Merci pour la correction du titre.

J'ai réussit à corriger , il y avait plusieurs erreurs.
voici mon code Fini et fonctionnel.
 protected void BtnEnvpersonnel_Click(object sender, EventArgs e)
        {
            SqlConnection connection = null;
            SqlCommand comm = null;

            
            //Connection Serveur
            try
            {
                string ConnectionStrings = System.Configuration.ConfigurationManager.ConnectionStrings["AjoutPersonnel"].ConnectionString;
                connection = new SqlConnection(ConnectionStrings);


                // Inserer les données

                // on récupere les données du formulaire.
                string persoNom = TxtBxName.Text;
                string persoPrenom = TxtBxLastName.Text;
                string persoAge = TxtBxAge.Text;
                string persoMetier = TxtBxMetier.Text;
                string persoExpe = TxtBxExpe.Text;
                string persoSpec = TxtbxSpec.Text;
                string persoIDResto = DropDownListIdResto.SelectedValue;

                // on ajoute les nouvelles données à la base.


                string query = "INSERT INTO [SiteResto].[dbo].[Personnel] "+
                    "([Name],[lastName],[Metier],[Age],[Specialite],[Experience],"+
                    "[IDResto]) VALUES (@persoName,@persoPrenom,@persoMetier,"+
                    "@persoAge,@persoSpecialite,@persoExperience,@persoIDResto)";

                comm = new SqlCommand(query);

                comm.Parameters.Add(new SqlParameter("@persoName", persoNom));
                //comm.Parameters["@persoName"].Value = persoNom;

                comm.Parameters.Add(new SqlParameter("@persoPrenom", persoPrenom));
                //comm.Parameters["@persoPrenom"].Value = persoPrenom;

                comm.Parameters.Add(new SqlParameter("@persoAge", persoAge));
                //comm.Parameters["@persoAge"].Value = persoAge;

                comm.Parameters.Add(new SqlParameter("@persoMetier", persoMetier));
                //comm.Parameters["@persoMetier"].Value = persoMetier;

                comm.Parameters.Add(new SqlParameter("@persoExperience", persoExpe));
                //comm.Parameters["@persoExperience"].Value = persoExpe;

                comm.Parameters.Add(new SqlParameter("@persoSpecialite", persoSpec));
                //comm.Parameters["@persoSpecialite"].Value = persoSpec;

                comm.Parameters.Add(new SqlParameter("@persoIDResto", persoIDResto));
                //comm.Parameters["@persoIDResto"].Value = persoIDResto;


                connection.Open();
                comm.Connection = connection;
                comm.ExecuteNonQuery();
                // ici on est sûr que la requête a bien été exécutée.
                lblMessage.Text = " Les données sont enregistrées!";
            }
            catch (SqlException E)
            {
                //  Any uncaught errors will percolate up to Application_Error event handler though in this catch block 
                //  I am declaring that I understand that there is potential for an SqlException and am therefor trapping them here 

                string message = "Une erreur de connexion SQL est survenue" + E.Message + " " +comm.CommandText;
                lblMessage.Text = message;
            }
            catch (Exception E)
            {
                string message = "Une erreur est survenue" + E.Message;
                lblMessage.Text = message;

            }
            finally
            {
                if (connection != null)
                    connection.Close();
            } 
}



Autodidacte de 48 ans