J'écris une application Windows Form relativement simple qui est censée agir comme un frontal (ajout, modification, suppression d'entrées) pour une base de données SQL Server que nous avons. J'ai un TextBox pour chaque colonne dans la table, et un ListBox pour énumérer toutes les entrées (par le prénom et le nom). Les TextBox sont remplis avec les données de l'entrée sélectionnée dans le contrôle ListBox.Mise à jour de données avec LINQ et BindingSource
J'ai quelques difficultés à mettre à jour les entrées dans la base de données en utilisant BindingSource. Voici le code que je suis actuellement (sans succès) en utilisant:
DBDataContext dc = new DBDataContext();
Entrys e = (Entry)EntryBindingSource.Current;
dc.Entrys.Attach(e);
dc.Entrys.InsertOnSubmit(e);
dc.SubmitChanges();
Avec ce code, je reçois une exception que l'entrée existe déjà, ce qui est logique, mais je ne sais pas comment dire ce que je veux mettre à jour cette entrée avec les nouvelles données. Je sais comment vous pouvez mettre à jour manuellement chaque entrée, mais comme j'ai 10 colonnes différentes, ce serait un arbre if/else relativement grand (vérifier si la valeur de chaque zone de texte est différente de la valeur de BindingSource pour cette entrée). Supprimer puis rajouter cette entrée me semble être une mauvaise forme. Je suis sûr qu'il y a une meilleure façon de le faire.
N'ayant jamais utilisé LINQ (ou même SQL) auparavant, vous avez probablement raison de le faire de manière incorrecte. Comment puis-je extraire les données que l'utilisateur a saisies à partir des zones de texte afin que je puisse l'insérer dans le DataContext? – jnevelson