Salut tout le monde
!
Alors voilà, je vous présente mon problème:
Dans mon projet, j'ai deux tables:
Personne:
pers_ID
pers_nom
pers_prenom
pers_serv_ID
Service:
serv_ID
serv_libelle
Liées par serv_ID = pers_serv_ID
J'ai une page, de type formulaire, qui permet d'ajouter de nouvelles personnes. Dedans, je demande à l'utilisateur à travers des TextBox de rentrer les différentes informations de la table Personne (nom, prenom). Puis, j'ai une DropDownList qui énumère, juste, les différents libellés Service (SELECT serv_libelle FROM Service). C'est-à-dire que l'utilisateur doit choisir entre le service comptabilité, le service tourisme, etc. par exemple.
Mon problème:
Je me suis dis, pour récupérer l'ID de mon DropDownList, je vais faire une fonction SelectedIndexChanged, qui, a chaque fois que l'utilisateur sélectionne un nouveau libellé, le stocke dans une TextBox (à part), que je peux récupérer ensuite lors du clique "Valider".
Pour être plus clair, je vous met mon code c#:
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 40 41 42 43 44 45 46 47 48 49 50 51 52
| using System;
using System.Data;
using System.Data.SqlClient;
using Projet1;
namespace Projet1
{
public partial class AjoutPersonne : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void ButtonValider_Click(object sender, EventArgs e)
{
SqlConnection MaConnexion = null;
try
{
MaConnexion = new SqlConnection("Data Source=**\\**;Initial Catalog=**;Integrated Security=True");
SqlCommand Ajouter = new SqlCommand("INSERT INTO Personne (pers_ID, pers_nom, pers_prenom, pers_serv_ID) VALUES (DEFAULT, @Nom, @Prenom, @Service);", MaConnexion);
MaConnexion.Open();
Ajouter.Parameters.Add("@Nom", SqlDbType.NVarChar).Value = TextNom.Text;
Ajouter.Parameters.Add("@Prenom", SqlDbType.NVarChar).Value = TextPrenom.Text;
Ajouter.Parameters.Add("@Service", SqlDbType.Int).Value = TextEnregistrement.Text;
Ajouter.ExecuteNonQuery();
}
catch (Exception UneException)
{
Erreur.Text = UneException.Message;
}
finally
{
if ((MaConnexion != null))
{
if (MaConnexion.State == ConnectionState.Open)
{
MaConnexion.Close();
}
}
}
}
protected void DropDownListService_SelectedIndexChanged(object sender, EventArgs e)
{
TextEnregistrement.Text = DropDownListService.SelectedValue;
}
}
} |
Si dans ma dernière méthode, je met SelectedItem ou SelectedIndex, il y a une erreur qui me dit qu'il est impossible de convertir ce type en string (ce que je comprend).
Mon vrai problème est que:
- Je pense que je me complique déjà la vie, mais je n'arrive pas à voir d'autres méthodes
- Quand j'applique cette méthode, il y a une erreur du type:
Message d'erreur du compilateur: CS1061: 'ASP.ajoutpersonne_aspx' ne contient pas une définition pour 'DropDownListService_SelectedIndexChanged' et aucune méthode d'extension 'DropDownListService_SelectedIndexChanged' acceptant un premier argument de type 'ASP.ajoutpersonne_aspx' n'a été trouvée (une directive using ou une référence d'assembly est-elle manquante ?)
Alors que je réfère bien sur ma DropDownList, l'évènement "SelectedIndexChanged" et je ne pense pas avoir oublié une référence...
Mon post est un peu long, mais j'ai essayé d'être le plus clair possible dans mes explications, en espérant que vous comprendrez 
Quelqu'un aurait-il une idée?
Merci de votre aide.
Partager