2016-12-01 50 views
-1

,所以我有我的函數的代碼插入新的數據到數據庫(通過點擊一個按鈕激活):C# - 使用EF6.0

entry ent = new entry { prodId = query1 , prodQty = int.Parse(textBox.Text) , hospId = query4 , contId = query5 , freqMaintenance = int.Parse(textBox1.Text), empId = this.emp }); 

ctx.entries.InsertOnSubmit(ent); 

ctx.ent.SubmitChanges(); 

,並從數據庫中的表結構是這樣的(簡單) 。 。

ENTRYID INT標識(1,1)的主鍵[非空],

PRODID INT外鍵[非空],

prodQty INT [空],

hospId INT外鍵[空],

contID INT外鍵[NOT NULL],

freqMaintenance INT [NOT NULL],

dateRec日[NOT NULL]默認SYSDATE,

EMPID INT外鍵[NOT NULL],

批准位[空],使用的SQL Server Compact 4.0 EF6

IM。 0+ Visual Studio。

我想要做的是將數據插入表中。我嘗試使用.SaveChanges.SubmitChanges但語法錯誤。

+0

'ctx'對象中的'ent'是什麼? – kat1330

+0

ent是我創建的對象。 –

回答

0

根據MSDN你可以插入新的實體,像這樣:

entry ent = new entry { prodId = query1 , prodQty = int.Parse(textBox.Text) , hospId = query4 , contId = query5 , freqMaintenance = int.Parse(textBox1.Text), empId = this.emp }); 
ctx.entries.Add(ent); 
ctx.SaveChanges(); 

根據同一篇文章中,你可以通過明確指定該州增加新的實體上下文也就是「加」:

entry ent = new entry { prodId = query1 , prodQty = int.Parse(textBox.Text) , hospId = query4 , contId = query5 , freqMaintenance = int.Parse(textBox1.Text), empId = this.emp }); 
ctx.Entry(ent).State = EntityState.Added; 
ctx.SaveChanges(); 

我不確定您是如何實現您的上下文的,但語法錯誤可能是因爲ent

ctx。 ent .SubmitChanges();

+0

它拋出我這個異常:拋出的異常:EntityFramework.dll中的'System.Data.Entity.Infrastructure.DbUpdateException' –

+0

@JulioMotol在這種情況下,我認爲你的問題可能不在上下文中!它看起來像你在某種程度上有一些重複的ID問題。我看到你使用'identity(1,1)',但是你能否請我驗證一下ID是否一切正常?你有沒有更新yuor實體框架? – kat1330

+0

@JulioMotol也許這篇文章可以幫助你解決錯誤信息:http://www.technologycrowds.com/2015/07/system-data-entity-infrastructure-DbUpdateException.html – kat1330

0

可能是以下代碼將爲您工作。

ctx.Set<Entry>().Add(ent); 
ctx.SaveChanges();