Je tente de supprimer des lignes d'une table via une zone de liste. Voici le code que j'ai utilisé pour afficher les données de la base de données dans la zone de liste. FYI - J'utilise une fonction de recherche de calendrier - par laquelle un utilisateur sélectionne une date sur le calendrier, clique sur 'recherche', et la zone de liste affiche les résultats appropriés en fonction des dates trouvées dans la base de données.C# suppression des entrées de la base de données via la zone de liste
Con.Open():
SqlCommand cmd = new SqlCommand("Select Member, Clerk, Room, Time From Events where Date = @searchDate", con);
cmd.Parameters.AddWithValue("@searchDate",SearchDate.SelectedDate);
IDataReader reader = cmd.ExecuteReader();
while (reader.Read()){
string member = (string)reader["Member"];
string clerk= (string)reader["Clerk"];
string room = (string)reader["Room"];
string time = (string)reader["Time"];
lstEvents.Items.Add("Member: " + member + " -- " + "Clerk: " + clerk+ " -- " + "Room: " + room + " -- " + "Time: " + time);
//lstEvents is the ID of the listbox
}
reader.Close();
con.Close();
Le code ci-dessus fonctionne très bien. Ce que j'espérais, c'était de trouver un moyen de supprimer la ligne correspondante dans la base de données. Ainsi, un utilisateur sélectionne l'un des éléments retournés dans la liste et clique sur 'supprimer'. Je suis aussi loin que ...
SqlCommand cmd = new SqlCommand("Delete From Events where Member, Clerk, Room, Date, Time = @member, @clerk, @room, @date, @time", con);
cmd.Parameters.AddWithValue("@member", lstEvents.SelectedValue);
cmd.Parameters.AddWithValue("@clerk", lstAppointments.SelectedValue);
cmd.Parameters.AddWithValue("@room", lstEventss.SelectedValue);
cmd.Parameters.AddWithValue("@date", Convert.ToDateTime(SearchDate.SelectedDate);
cmd.Parameters.AddWithValue("@time", lstEvents.SelectedValue);
cmd.Connection = con;
cmd.ExecuteNonQuery();
Cette tentative semble cependant un peu farfelue, des suggestions comment cela pourrait se faire? Je ne comprends pas particulièrement comment je peux sélectionner plusieurs valeurs, à savoir un membre et un employé de la même ligne dans la zone de liste.
Est-ce que ce tableau ont une carte d'identité? –
oui, c'est un int qui est automatiquement mis à jour. –