我想使用 EPPLUS 将数据从 Excel 导入数据库。从这里我拿了代码:https ://www.paragon-inc.com/resources/blogs-posts/easy_excel_interaction_pt6
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 中的数据正确,一切正常。问题是是否有任何记录包含无效数据。例如,我们在 excel 中有 3 条记录:
- ID:21 (ID 不在基地) | 名字:约翰 | 姓氏:笼子
- ID:1 (ID 在基数中) | 名字:梅 | 姓氏:蓝色
- ID:25 (ID 不在基数中) | 名字:尼克 | 姓氏:西里
并且在数据库中已经记录了ID = 1
. 所以第一和第三应该保存,但第二不应该。问题是只有第一条记录在保存,其余的(第二条和第三条)会出错。我不知道为什么?也许是因为这是一笔交易还是什么?有点奇怪。谁能告诉我该怎么做才能保存第一和第三条记录?在这种情况下不仅是第一名吗?
错误:
ORA-00001: 违反唯一约束主键
在第三张记录中没有任何意义...