[C#] error CS1518:Expected class, delegate...

Résolu/Fermé
Utilisateur anonyme - 21 déc. 2008 à 19:04
scriptiz Messages postés 1424 Date d'inscription dimanche 21 décembre 2008 Statut Membre Dernière intervention 14 septembre 2023 - 22 déc. 2008 à 21:58
Bonsoir,

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 CS1518: Expected class, delegate, enum, interface, or struct.

Voilà mon code :

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


	
	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("OrdersByDate",con);
				com.CommandType=CommandType.StoredProcedure;
				com.Parameters.Add("@StartDate",SqlDbType.DateTime).Value=
				new DateTime(2008,12,20);
				
				com.Parameters.Add("@EndDate",SqlDbType.DateTime).Value=
				new DateTime(2008,12,21);
				SqlDataAdapter DA= new SqlDataAdapter(com);
				DataSet dt=new DataSet("Orders");
				DA.Fill(dt,"OrdersByDate");
				dataGrid1.SetDataBinding(dt,"OrdersByDate");
			
				}

			catch(Exception ex)

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


Je ne sais pas comment corriger cette erreur, quelqu'un pourrait m'aider s'il vous plait ?
Merci par avance !

5 réponses

scriptiz Messages postés 1424 Date d'inscription dimanche 21 décembre 2008 Statut Membre Dernière intervention 14 septembre 2023 425
21 déc. 2008 à 19:08
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Data.SqlClient;


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

			{


Peut-être serait-il bien de commencer comme l'erreur le dit par déclarer ta classe, voir une interface ou autre chose, ici je pense que tu souhaite utiliser une classe donc :

public class MaClasse
{
	private void button1_Click(......)
}
1
Utilisateur anonyme
21 déc. 2008 à 19:38
Merci de ta réponse !

C'est la première fois que je travaille avec une Windows Forms Application, et encore avec C#, je suis étonnée du nombre de fichiers que ça génère : form1.cs, form1.Designer.cs, form1.resx et program.cs

Encore une erreur -après avoir déclaré une classe comme tu me l'as conseillé- : The name 'dataGrid1' does not exist in the current context :(
(Elle est pas la seule à figurer dans ma liste d'erreurs, y en a 15 autres)
0
Utilisateur anonyme
21 déc. 2008 à 19:46
Sur un site, on me demande de modifier dans les propriétés de Form.cs (le fichier où j'ai écrit mon code), j'ai donc modifié Build Action de Compile à Embededd Resource, et les 15 erreurs sont disparues, je ne sais pas pourquoi d'ailleurs ^^
La seule erreur qui me reste c'est au niveau du fichier Form1.Designer.cs :
No suitable method found to override.
0
scriptiz Messages postés 1424 Date d'inscription dimanche 21 décembre 2008 Statut Membre Dernière intervention 14 septembre 2023 425
21 déc. 2008 à 21:04
La programmation ça se fait pas à taton... :$

Essaye de réviser ou de commencer un nouveau projet tout propre ^^
0
Utilisateur anonyme
22 déc. 2008 à 12:47
Je n'ai pas tâtonné du tout :(

Voilà, j'ai créé un nouveau projet, mais toujours la même 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>
        /// <param name="disposing">true si les ressources managées doivent être supprimées ; sinon, false.</param>
        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());
        }
    }
}
0
scriptiz Messages postés 1424 Date d'inscription dimanche 21 décembre 2008 Statut Membre Dernière intervention 14 septembre 2023 425
22 déc. 2008 à 16:40
Tu as changer le nom de la classe MaClasse (à la base Form1) qui contient les event du forum (button_onClick())?

public class MaClasse


Où sont ton bouton et ton DataGrid dans ton Form1.Designer.cs ??
0
Utilisateur anonyme
22 déc. 2008 à 18:52
J'ai changé le nom de la classe de MaClasse à Form1, j'ai ajouté aussi une ligne
namespace WindowsFormsApplication111
au début du fichier Form1.cs

Où sont ton bouton et ton DataGrid dans ton Form1.Designer.cs ??
--> Faut que je les déclare dans Form1.Designer.cs ? (c'est mon premier programme C# :'( )
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
scriptiz Messages postés 1424 Date d'inscription dimanche 21 décembre 2008 Statut Membre Dernière intervention 14 septembre 2023 425
22 déc. 2008 à 21:58
Si tu veux les afficher oui, mais normalement tu as un éditeur WYSIWYG pour ajouter les boutons, DataGrid, ... et ensuite en changer les propriétés puis agir dessus à partir du Form1.cs

Pour les applications avec interface GUI, faut pas trop touché au code généré par Visual C#, par exemple tu veux mettre une bouton tu le fait glisser, ensuite tu veux ajouter du code lorsqu'on clique sur ce bouton, tu double clique sur le bouton dans l'éditeur et tu arrivera directement dans l'event.

Car là dans ton code je vois pas mal de soucis, par exemple tu utilise un DataGrid alors que tu n'a pas mit de using System.Windows.Forms, ou alors déclare le comme ça :
System.Windows.Forms.DataGrid dataGrid1 = new System.Windows.Forms.DataGrid........

Enfin voilà je n'ai jamais utilisé de DataGrid je sais pas trop à quoi ça sert moi je suis plutôt côté algorithmiques et moins IHM.
0