2009-06-13 6 views
1

Je souhaite ajouter un nouvel administrateur dans ma base de données. Mais ça ne marche pas. S'il vous plaît regardez le gestionnaire d'événements button1_Click, j'ai besoin d'ajouter de la valeur dans cet événement.ADO.NET Entity Framework SaveChanges() ne fonctionne pas

public partial class Form1 : Form 
    { 
     protected NetTanitimTestEntities adminNameContext; 
     public Form1() 
     { 
      InitializeComponent(); 
      adminNameContext = new NetTanitimTestEntities(); 
     } 

     private void Form1_Load(object sender, EventArgs e) 
     { 
      ObjectQuery<Admins> adminNameQuery = adminNameContext.Admins; 
      dataGridView1.DataSource = adminNameQuery; 
      dataGridView1.Columns["id"].Visible = false; 
     } 

     private void button1_Click(object sender, EventArgs e) 
     { 

      using (NetTanitimTestEntities newadmin = new NetTanitimTestEntities()) 
      { 
       Admins admin = new Admins { Name = "ali", SurName = "Çorlu", Username = "acorlu", Password = "1234", UserType = "user" }; 
       newadmin.SaveChanges(); 
      } 
     } 

     private void button2_Click(object sender, EventArgs e) 
     { 
      adminNameContext.SaveChanges(); 
     } 
    }
+0

La nouvelle ligne ajoutée avec Button1 s'affiche-t-elle lorsque vous redémarrez le programme? –

+0

Vous devez * ADD * l'objet "admin" nouvellement créé dans le contexte de l'entité "newadmin"! Sinon, il n'y aura rien à sauver ..... voir la réponse d'Alex pour plus de détails –

Répondre

4

Je dois admettre, je ne sais pas tout un tas sur le Entity Framework mais, dans votre événement click button1 vous créez votre nouvelle entité, mais vous êtes alors il suffit d'appeler SaveChanges mais vous avez pas ajouté le nouvelle entité Admins au contexte NetTanitimTestEntities. Donc, je me rassemble parce que le contexte NetTanitimTestEntities que vous utilisez n'est pas conscient de la nouvelle entité que vous avez créée, rien n'est conservé dans la base de données. Donc, si vous ajoutez cette nouvelle entité Admins au contexte, puis appelez SaveChanges, nous espérons que cela sera conservé dans votre base de données.

13

Il semble que vous devez ajouter la commande suivante dans votre code:

using (NetTanitimTestEntities newadmin = new NetTanitimTestEntities()) 
{ 
    Admins admin = new Admins { Name = "ali", SurName = "Çorlu", Username = "acorlu", Password = "1234", UserType = "user" }; 
    newadmin.AddToAdmins(admin); 
    newadmin.SaveChanges(); 
} 

ou quelque chose comme ça en fonction du nom réel de la méthode générée. Votre objet "newadmin" devrait avoir un tas de méthodes "add" générées pour chaque entité que vous avez dans votre modèle.

Questions connexes