2017-05-22 40 views
0

我是實體框架中的初學者。我想通過使用實體框架,C#,但有此錯誤以C#形式使用實體框架更新數據

「System.InvalidOperationException」類型的未處理的異常出現在EntityFramework.dll

所有的時間來更新數據,我使用Visual Studio 2013

namespace Entity_FrameWork 
{ 
    public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
     } 
     Beta_DatabaseEntities db = new Beta_DatabaseEntities(); 
     table1 tb = new table1(); 
     public int ID; 
     public string Name; 
     public int Salary; 

     public void Entry() 
     { 
      ID = Convert.ToInt16(id.Text); 
      Name = name.Text; 
      //Salary = Convert.ToInt32(salary.Text); 
      tb.Id = ID; 
      tb.Name = Name; 
      //tb.Salary = Salary; 
     } 

     private void update_Click(object sender, EventArgs e) 
     { 
      Entry(); 
      db.Entry(tb).State = System.Data.Entity.EntityState.Modified; 
      db.SaveChanges(); 
      MessageBox.Show("UPDATED"); 
     } 
    } 
} 
+0

Beta_DatabaseEntities分貝=新Beta_DatabaseEntities();您試圖更新的EDMX的哪個版本? ID = Convert.ToInt16(id.Text);這個id可變變量在哪裏,並被賦值? –

+0

我只有一個名爲table1的表,名爲Beta_DatabaseEntities ... well ID是文本框的名稱 –

回答

0
namespace Entity_FrameWork 
{ 
    public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
     } 
     Beta_DatabaseEntities db = new Beta_DatabaseEntities(); 
     table1 tb = new table1(); 
     public int ID; 
     public string Name; 
     public int Salary; 

     public void Entry() 
     { 
      ID = Convert.ToInt16(id.Text); 
      Name = name.Text; 
      //Salary = Convert.ToInt32(salary.Text); 
      tb.Id = ID; 
      tb.Name = Name; 
      //tb.Salary = Salary; 
     } 

     private void update_Click(object sender, EventArgs e) 
     {tb=db.Tables.where(x=>x.id==1).firstOrDefault(); 
      Entry(); 
      db.SaveChanges(); 
      MessageBox.Show("UPDATED"); 
     } 
    } 
} 
+0

歡迎來到Stack Overflow四條!我們鼓勵學習,而不是僅僅發佈代碼,你是否也會解釋什麼,爲什麼以及如何解決問題?謝謝! – Mafii

+0

不起作用...在哪裏出錯 –