我想使用EPPLUS將數據從Excel導入數據庫。在這裏,我把代碼:https://www.paragon-inc.com/resources/blogs-posts/easy_excel_interaction_pt6db.SaveChanges()循環在出錯後不保存記錄
using (var db = new DbEntities())
{
for (var row = 2; row <= lastRow; row++)
{
var newRecord = new DB_USER
{
ID = Int32.Parse(worksheet.Cells[idColumn + row].Value.ToString()),
FIRST_NAME = worksheet.Cells[firstNameColumn + row].Value.ToString(),
LAST_NAME = worksheet.Cells[lastNameColumn + row].Value.ToString(),
};
db.DB_USER.Add(newRecord);
try
{
db.SaveChanges();
totalImported++;
}
catch (Exception ex)
{
resultMessages.Add(string.Format("Error in line #{0}: {1}\n", row,
ex.Message));
}
}
}
一切工作正常,如果在Excel中的數據是正確的。問題是如果任何記錄具有無效數據。例如,我們有3條記錄在Excel:
- ID:21 (鹼基號沒有) |名字:約翰|最後的名字:籠子
- ID:1 (身份證是在基地) |名字:Mei |姓名:藍色
- ID:25 (ID不以基準計) |名字:尼克|姓:Siri
而且在數據庫中已經記錄了ID = 1
。所以第一和第三應該保存,但第二不應該。問題是隻有第一條記錄是保存的,其餘的(第二條和第三條)會得到一個錯誤。我不知道爲什麼?也許是因爲這是一個交易或什麼?有點奇怪。任何人都可以告訴我該怎麼做才能保存第一和第三張唱片?不僅在這種情況下第一?
錯誤:
ORA-00001: unique constraint primary key violated
什麼沒有任何意義在第3記錄......
特別是您收到什麼錯誤?如果您遺漏了重要信息,我們無法真正幫助您。 – mason
@mason,編輯,現在你可以看到一個錯誤,但仍然沒有意義 – DiPix
@DiPix:你得到這個工作? –