Erreur lors d'un INSERT INTO

Résolu
WineFun Messages postés 3 Date d'inscription lundi 25 juillet 2011 Statut Membre Dernière intervention 26 juillet 2011 - 25 juil. 2011 à 09:59
WineFun Messages postés 3 Date d'inscription lundi 25 juillet 2011 Statut Membre Dernière intervention 26 juillet 2011 - 26 juil. 2011 à 11:54
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

cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 366
26 juil. 2011 à 09:26
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
3
WineFun Messages postés 3 Date d'inscription lundi 25 juillet 2011 Statut Membre Dernière intervention 26 juillet 2011
26 juil. 2011 à 11:54
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
3
WineFun Messages postés 3 Date d'inscription lundi 25 juillet 2011 Statut Membre Dernière intervention 26 juillet 2011
26 juil. 2011 à 11:50
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
0