2014-07-01 30 views
1

我想將數據添加到數據庫中添加數據,我得到這個錯誤。在數據庫asp.net

類型「System.Data.Entity.Core.EntityException」的一個例外發生在EntityFramework.SqlServer.dll但在用戶代碼中沒有處理

其他信息:啓動上的事務時發生錯誤提供者連接。詳情請參閱內部例外。

這裏是我的代碼。

public void alarmlog(int id) 
{ 
     AlarmLog log = new AlarmLog(); 

     if (id == 1) 
     { 
      log.SectorID = "LRD"; 
      log.LineNo = "L01"; 
      log.WorkStation = "02"; 
      log.LMQS = 1; 
      log.StaffID = 6; 
      log.DateTime = DateTime.Now; 
     } 

     db.AlarmLogs.Add(log); 
     db.SaveChanges(); 
} 
+5

把你的代碼放在try-catch塊來獲取錯誤消息的詳細信息,http://msdn.microsoft.com/en-us/library/0yd65esw.aspx – Adil

+0

現在我知道我的代碼是catch,但我不知道如何解決它 – anin

+1

把內部異常的屏幕截圖第一 –

回答

0

我有一個預感,您的錯誤位於您的if(id==1)聲明。我的猜測是,你在一個id是不是1.新Alarmlog創建,if語句不返回true,然後嘗試一個空的項目添加到數據庫中通過。 如果所有這些字段(即使是一個字段)都不爲null,則會拋出異常。

刪除您如果塊,看看是否錯誤已經消失:

public void alarmlog(int id) 
{ 
    AlarmLog log = new AlarmLog(); 

    log.SectorID = "LRD"; 
    log.LineNo = "L01"; 
    log.WorkStation = "02"; 
    log.LMQS = 1; 
    log.StaffID = 6; 
    log.DateTime = DateTime.Now; 
    db.AlarmLogs.Add(log); 
    db.SaveChanges(); 
} 

如果您希望我們停止猜測,請大家提意見說什麼:裹在try { ... } catch(Exception ex) { ... }塊你的代碼,看看有什麼錯誤是。

+0

噢,我知道了,我只是把db.SaveChanges();在循環。我在foreach()循環中調用這個函數,爲什麼我得到這個錯誤。謝謝你的回答和幫助:) – anin