C# - Probleme pour lancer une procédure stockée avec paramètre
Bonjour à tous, je suis pseudo débutant en C# et je crois que je vais avoir grand besoin de vous !
Voila mon problème, qui est sans doute très simple mais je m'en sors pas la :
j'ai une connexion à une base sql server dans une class connexion :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
|
public class connexion
{
//déclaration de la variable de connexion
public static SqlConnection co;
public connexion()
{
//
// TODO: Add constructor logic here
//
}
public static void ConnexionBase ()
{
SqlConnection co = new SqlConnection();
string costr= "Data Source=(local);Initial Catalog=JFM-DVD;Integrated Security=SSPI";
co.ConnectionString = costr;
try
{
co.Open();
MessageBox.Show("Connexion ouverte !!");
}
catch(Exception ex)
{
MessageBox.Show("Impossible d'ouvrir la connexion : " + ex.Message);
}
finally
{
if (co.State == ConnectionState.Open)
co.Close();
}
}
} |
ensuite j'ai ma form princale Menu qui se connecte via cette classe de connexion, et ça ça marche ! j'ai le message "connexion ouverte !" :
Code:
1 2 3 4 5 6 7 8 9
|
private void Form1_Load(object sender, System.EventArgs e)
{
//Connexion à la base à l'ouverture de l'application
DVD_JF.connexion.ConnexionBase();
} |
Voila. et enfin, dans une 3eme fenetre, je veux lancer une proc et remplir une liste. je fais comme ça et la ça plante avec le message suivant :
Une exception non gérée du type 'System.InvalidOperationException' s'est produite dans system.data.dll
Informations supplémentaires*: ExecuteReader*: la propriété Connection n'a pas été initialisée.
et voici le code qui plante :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| private void frmChoix_Load(object sender, System.EventArgs e)
{
//au lancement chargement de la liste des films à choisir
SqlCommand cmd = new SqlCommand();
cmd.Connection = connexion.co;
//requete de selection dans un datareader pour afficher les données.
cmd.CommandText = "ps_dvd_select_1";
cmd.CommandType = CommandType.StoredProcedure;
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
lstFilms.Items.Add(dr["LIBELLE"].ToString());
}
dr.Close(); |
Voila ! ça plante sur la ligne en gras ! merci d'avance pour votre aide !!