La référence d'objet n'est pas définie à une insta [Fermé]

Signaler
Messages postés
2
Date d'inscription
mardi 23 octobre 2018
Statut
Membre
Dernière intervention
24 octobre 2018
-
Messages postés
14003
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
22 janvier 2021
-
Je me retrouve avec l'erreur "La référence d'objet n'est pas définie à une instance d'un objet." lorsque je souhaite ajouter un acteur sur le bouton enregistrer de mon formulaire.

Merci d'avance pour vos réponses

1 réponse

Messages postés
14003
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
22 janvier 2021
788
bonjour, pourquoi ne nous montres-tu pas l'ensemble de ton code, de préférence comme un texte, avec coloration syntaxique, pas comme une image?
Messages postés
2
Date d'inscription
mardi 23 octobre 2018
Statut
Membre
Dernière intervention
24 octobre 2018

Bonjour,
Voila mon code complet :

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 Gestion_du_Stock_Xceed
{
public partial class Mise_a_jour_Personne : Form
{

SqlConnection cnx = new SqlConnection(@"Data Source=.;AttachDbFilename=C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA\Xceed.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");
//Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\Northwind.mdb;Jet OLEDB:System Database=d:\NorthwindSystem.mdw;User ID=*****;Password=*****;
SqlCommand cmd;
SqlDataAdapter da, da1;
DataTable dt;
SqlDataReader dr;
string rq, RQ;
DataSet ds = new DataSet();
SqlCommandBuilder cb;
DataRow row;
CurrencyManager cm;
int T = 0;

public Mise_a_jour_Personne()
{
InitializeComponent();
}

private void Mise_a_jour_Personne_Load(object sender, EventArgs e)
{
this.Size = new Size(350, 261);
cnx.Open();
rq = " select *from Personne";
da = new SqlDataAdapter(rq, cnx);
da.Fill(ds, "aa");
dt = ds.Tables["aa"];
cnx.Close();
}

private void button1_Click(object sender, EventArgs e)
{
cnx.Open();
rq = "insert into Personne values (" + textBox1.Text + ",'" + textBox2.Text + "','" + textBox3.Text + "','" + DateTime.Parse(dateTimePicker1.Text).ToString("yyyy-MM-dd") + "','" + DateTime.Parse(dateTimePicker2.Text).ToString("yyyy-MM-dd") + "','" + comboBox1.Text + "')";
cmd = new SqlCommand(rq, cnx);
cmd.ExecuteNonQuery();
cnx.Close();
MessageBox.Show("Ajout Success");
}

private void button2_Click(object sender, EventArgs e)
{
cnx.Open();
rq = "update Personne set Nom='" + textBox2.Text + "',Prenom ='" + textBox3.Text + "',Datenais ='" + DateTime.Parse(dateTimePicker1.Text).ToString("yyyy-MM-dd") + "',Dateamb ='" + DateTime.Parse(dateTimePicker2.Text).ToString("yyyy-MM-dd") + "'Typeper= '" +comboBox1.Text + "where ID =" + textBox1.Text + "";
cmd = new SqlCommand(rq, cnx);
cmd.ExecuteNonQuery();
cnx.Close();
MessageBox.Show("Moddification Effectuer");
}

private void button3_Click(object sender, EventArgs e)
{
cnx.Open();
rq = "delete from Personne where ID =" + textBox1.Text + "";
cmd = new SqlCommand(rq, cnx);
cmd.ExecuteNonQuery();
cnx.Close();
MessageBox.Show("Suppression Effectuer");
}

private void button4_Click(object sender, EventArgs e)
{
if (T == 0)
{
dataGridView1.Visible = true;
this.Size = new Size(955, 261);
T = 1;
button4.Text = "Masquer";
cmd.CommandText = "select * from Personne";
cmd.Connection = cnx;
while(dr.Read())
{
dataGridView1.Rows.Add(dr[0], dr[1], dr[2], dr[3], dr[4], dr[5]);
}
dr.Close();
cnx.Close();

}
else if (T == 1)
{
dataGridView1.Visible = false;
this.Size = new Size(350, 261);
T = 0;
button4.Text = "Afficher";
}
}
}
}
Messages postés
14003
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
22 janvier 2021
788 >
Messages postés
2
Date d'inscription
mardi 23 octobre 2018
Statut
Membre
Dernière intervention
24 octobre 2018

est-ce bien utile de déclarer cmd au niveau de la classe? ne serait-ce pas plus clair de le déclarer dans les fonctions?
il me semble que le message d'erreur t'informe que tu n'as pas instancié cmd avant de l'utiliser.