【发布时间】:2016-06-18 20:22:21
【问题描述】:
我想使用 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 不在基数中) |名字:尼克 |姓氏:Siri
并且在数据库中已经记录了ID = 1。所以第一和第三应该保存,但第二不应该。问题是只有第一条记录在保存,其余的(第二条和第三条)会出错。我不知道为什么?也许是因为这是一笔交易还是什么?有点奇怪。谁能告诉我我应该怎么做才能保存第一和第三条记录?在这种情况下不仅是第一名吗?
错误:
ORA-00001: 违反唯一约束主键
第三条记录中没有任何意义的东西......
【问题讨论】:
-
具体会收到什么错误?如果您遗漏关键信息,我们将无法真正帮助您。
-
@mason,已编辑,现在您可以看到错误但仍然没有意义
-
@DiPix:你搞定了吗?
-
@MikaelPuusaari,是的,你为什么要问?
-
哦,既然问题还没有解决,如果有人给你答案,就把它标记为答案,否则如果你自己找到答案,添加答案并将你的答案标记为答案,这样问题可能已关闭:)
标签: c# asp.net-mvc entity-framework epplus ora-00001