44 votes

ExecuteReader: La propriété de connexion n'a pas été initialisée

ExecuteReader: La propriété de connexion n'a pas été initialisée.

mon codage est

protected void Button2_Click(object sender, EventArgs e)
    {

       SqlConnection conn = new SqlConnection("Data Source=Si-6\\SQLSERVER2005;Initial Catalog=rags;Integrated Security=SSPI");

    SqlDataReader rdr = null;

    try
    {
        // 2. Ouvrir la connexion
        conn.Open();

        // 3. Passer la connexion à un objet de commande
        //SqlCommand cmd = new SqlCommand("select * from Customers", conn);
        SqlCommand cmd=new SqlCommand ("insert into time(project,iteration)
                  values('"+this .name1 .SelectedValue +"','"+this .iteration .SelectedValue +"')");

        //
        // 4. Utiliser la connexion
        //

        // obtenir les résultats de la requête
        rdr = cmd.ExecuteReader();

        // afficher l'identifiant du client de chaque enregistrement
        while (rdr.Read())
        {
            Console.WriteLine(rdr[0]);
        }
    }
    finally
    {
        // fermer le lecteur
        if (rdr != null)
        {
            rdr.Close();
        }

        // 5. Fermer la connexion
        if (conn != null)
        {
            conn.Close();
        }
    }
  }
  }

    }

0 votes

Depuis que les objets SqlConnection, SqlCommand et SqlDataReader utilisent des ressources non gérées et qu'ils sont donc des objets jetables, il est recommandé de les supprimer une fois leur tâche terminée. Pour rendre le code plus lisible, vous pouvez utiliser la directive using pour le faire.

0 votes

Ces réponses sont correctes. Vous devez les accepter. Vous devez initialiser la propriété de connexion de SqlCommand avec votre connexion créée.

70voto

Utilisez ceci et passez l'objet de connexion :

 SqlCommand cmd=new SqlCommand ("insert into time(project,iteration)values('"+this .name1 .SelectedValue +"','"+this .iteration .SelectedValue +"')",conn);

0 votes

Salut merci pour les infos..j'avais une autre clarification aussi comment obtenir les contrôles HTML en c#

22voto

Abdul Muqtadir Points 3887

Après SqlCommand cmd=new SqlCommand ("insert into time(project,iteration)values('.... ajouter

cmd.Connection = conn;

J'espère que cela vous aidera

6voto

Muhammad Akhtar Points 32101

Vous devez attribuer une connexion à votre objet commande, comme..

SqlCommand cmd = new SqlCommand("insert into time(project,iteration)values('" + this.name1.SelectedValue + "','" + this.iteration.SelectedValue + "')");
cmd.Connection = conn;

3voto

Saleh Points 1363

Toutes les réponses sont vraies. C'est une autre façon. Et j'aime celui-ci

SqlCommand cmd = conn.CreateCommand()

vous devez remarquer que la concaténation de chaînes a un problème d'injection SQL. Utilisez les Paramètres http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.parameters.aspx

3voto

Jayeshwaree Points 66

Vous pouvez également écrire ceci:

SqlCommand cmd=new SqlCommand ("insert into time(project,iteration) values (@project, @iteration)", conn);
cmd.Parameters.AddWithValue("@project",name1.SelectedValue);
cmd.Parameters.AddWithValue("@iteration",iteration.SelectedValue);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X