Erreur : No suitable method found to override

Signaler
Messages postés
15
Date d'inscription
vendredi 28 novembre 2008
Statut
Membre
Dernière intervention
15 octobre 2009
-
khaoula85
Messages postés
15
Date d'inscription
vendredi 28 novembre 2008
Statut
Membre
Dernière intervention
15 octobre 2009
-
Bonjour à toutes et à tous,
J'essaie d'utiliser une procédure stockée dans une application Windows
Forms avec C#, mais au moment de la compilation, on m'affiche l'erreur : No suitable method found to override.
Je joins mes fichiers :

Form1.cs :
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Data.SqlClient;

public class MaClasse
{

private void button1_Click(object sender, System.EventArgs e)
{

SqlConnection con = new SqlConnection("Data Source=WIN-JU7TMT4KLCZ;" +
"Initial Catalog=base_pfa;Integrated Security=SSPI");

try
{

SqlCommand com = new SqlCommand("ps1", con);
com.CommandType = CommandType.StoredProcedure;
com.Parameters.Add("@id", SqlDbType.Int).Value =
new int(1);

SqlDataAdapter DA = new SqlDataAdapter(com);
DataSet dt = new DataSet("etudiants");
DA.Fill(dt, "ps1");
dataGrid1.SetDataBinding(dt, "ps1");

}

catch (Exception ex)
{
MessageBox.Show(this, ex.Message, "Erreur", MessageBoxButtons.OK);
}

}
}

Form1.Designer.cs : (ce fichier s'est généré tout seul)

namespace WindowsFormsApplication111
{
partial class Form1
{
/// <summary>
/// Variable nécessaire au concepteur.
/// </summary>
private System.ComponentModel.IContainer components = null;

/// <summary>
/// Nettoyage des ressources utilisées.
/// </summary>
/// true si les ressources managées doivent être supprimées ; sinon, false.

protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}

#region Code généré par le Concepteur Windows Form

/// <summary>
/// Méthode requise pour la prise en charge du concepteur - ne modifiez pas
/// le contenu de cette méthode avec l'éditeur de code.
/// </summary>
private void InitializeComponent()
{
this.SuspendLayout();
//
// Form1
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(292, 273);
this.Name = "Form1";
this.Text = "Form1";
this.Load += new System.EventHandler(this.Form1_Load);
this.ResumeLayout(false);

}

#endregion
}
}

L'erreur est au niveau de cette ligne :

protected override void Dispose(bool disposing)

Le dernier fichier est Program.cs :

using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;

namespace WindowsFormsApplication111
{
static class Program
{
/// <summary>
/// Point d'entrée principal de l'application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
}
}

Quelqu'un peut m'éclaircir les lanternes s'il vous plait ?

Merci d'avance.

6 réponses

Messages postés
6352
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
76
Salut,


L'utilisation d'override n'a de sens que si la méthode portant cette signature est déjà définie (virtual ou abstract) dans un des types de base.
Ce qui n'est à ma connaissance pas le cas du type Form.
Référence du langage C# : override (Référence C#)
Référence de Visual C# : erreurs et avertissements : Erreur du compilateur CS0115

/*
coq
MVP Visual C#
CoqBlog
*/
Messages postés
1160
Date d'inscription
vendredi 23 juillet 2004
Statut
Membre
Dernière intervention
21 octobre 2010
16
Ce problème vient surement du fait que tu as changé le namespace de ta classe form. Finallement, la form est dans un namespace différent entre le .cs et le .designer.cs, donc la classe du designer.cs n'est pas au courant de la dérivation depuis Form, et ne trouve pas dispose dans la calsse de base (puisqu'elle n'en a pas). Vérifie que les deux fichiers ont bien le meme namespace
Messages postés
15
Date d'inscription
vendredi 28 novembre 2008
Statut
Membre
Dernière intervention
15 octobre 2009

Merci Coq et Leprov de vos réponses.
Je n'ai pas mis de namespace dans mon fichier Form1.cs, je viens de l'ajouter, et voilà mon nouveau Form1.cs :

using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Data.SqlClient;

namespace WindowsFormsApplication111
{

    public class Form1

    {

        private void button1_Click(object sender, System.EventArgs e)
        {

            SqlConnection con = new SqlConnection("Data Source=WIN-JU7TMT4KLCZ;" +
        "Initial Catalog=base_pfa;Integrated Security=SSPI");

            try
            {

                SqlCommand com = new SqlCommand("ps1", con);
                com.CommandType = CommandType.StoredProcedure;
                com.Parameters.Add("@id", SqlDbType.Int).Value =
                new int(1);

                SqlDataAdapter DA = new SqlDataAdapter(com);
                DataSet dt = new DataSet("etudiants");
                DA.Fill(dt, "ps1");
                dataGrid1.SetDataBinding(dt, "ps1");

            }

            catch (Exception ex)
            {
                MessageBox.Show(this, ex.Message, "Erreur", MessageBoxButtons.OK);
            }

        }
    }
}

P.S. Je débute avec le C#
Messages postés
327
Date d'inscription
mardi 17 février 2004
Statut
Membre
Dernière intervention
10 avril 2010
6
Ta class Form1 dois heriter de la classe System.Windows.Form non ?

public class Form1: Form //Form1 herite de Form
{

...
}
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
43
Et le fait d'utiliser un SQL Connection et toute la timballe dans un click sur bouton ça ne gêne pas les gens plus que ça ?

<hr />
-Blog-
-Site Perso-
Messages postés
15
Date d'inscription
vendredi 28 novembre 2008
Statut
Membre
Dernière intervention
15 octobre 2009

Bonsoir,
Voilà, je reviens vers mon post avec un peu de retard, j'ai dû désinstaller et réinstaller les logs et me documenter un peu plus sur C#.
Merci de votre aide et bonne année à tous !