Bonjour,
Je suis en pleine découverte de Entity Framework et je patauge lamentablement depuis un bon moment pour charger "proprement" un DGV à partir du contexte et renvoyer les modifications vers la base SQlite sous-jacente.
Je manipule la base exemple "Chinook".
J'utilise C# avec VS2012 , Framework 4.5 et EF 5.0.0.
J'initialise le DGV avec :
J'ai défini un bouton pour effectuer la mise à jour de la base :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 public Form1() { InitializeComponent(); context = new Chinook_SqliteEntities(); } private class DataBindingProjection { public long ArtistId { get; set; } public string Name { get; set; } } private void LoadGrid() { var artists = from a in context.Artist where a.Name.StartsWith("A") orderby a.Name select new DataBindingProjection { ArtistId = a.ArtistId, Name = a.Name }; try { bindingSource1.DataSource = artists.ToList(); dataGridView2.DataSource = bindingSource1; } catch (Exception ex) { MessageBox.Show("Erreur" + ex.Message, "Ouverture base", MessageBoxButtons.OK, MessageBoxIcon.Error); } finally { } }
Je modifie les valeurs dans le DGV mais les mises à jour de la base ne se font pas : ni en création, ni en modification ni en suppression.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 private void button3_Click(object sender, EventArgs e) { using (var context = new Chinook_SqliteEntities()) { context.SaveChanges(); } }
J'ai réussi néanmoins à ajouter par code un nouvelle entité :
Je cherche et re...cherche sur les forums mais je n'ai encore rien trouvé de vraiment convaincant
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 private void button2_Click(object sender, EventArgs e) { using (var context = new Chinook_SqliteEntities()) { context.Artist.Add( new Artist { Name = "Aaaa6" }); context.SaveChanges(); } }
Je vous remercie d'avance pour vos "coups de pouce" d'experts à un débutant qui voudrait bien comprendre et avancer, un peu, vers la connaissance !
Partager