【问题标题】:Where to keep data from excel file before saving it in database?将excel文件中的数据保存到数据库之前在哪里保存?
【发布时间】:2014-11-12 01:18:29
【问题描述】:

我的应用有问题。使用表单,用户可以选择一个 excel 文件来填充数据库中的某个表。我在保存数据之前验证数据并显示带有一些验证消息的表格。我还展示了来自 excel 的全部数据。这是我的问题:

  1. 在将数据保存到数据库之前将其保存在何处?假设用户没有看到验证消息。他单击 SaveData 按钮。我们采取了一些行动,但我们的文件中没有数据。我们无法从 db 中提取数据,因为它也不存在。我们在第一个操作中可以访问数据,但现在我们在第二个操作中。
  2. 对于许多验证消息,我想使用分页。这是同样的问题 - 用户单击 NextPage 按钮,然后我们执行操作。我们没有任何来自 excel 的数据。
  3. 我应该将数据保存在 ViewBag 中吗? ajax可以在这里帮助我吗?我忘了一件事 - 我可以在一个 excel 文件(1000+)中有很多行。我使用 gridmvc 来呈现数据。

感谢您的帮助。


更新: 如果验证失败,用户不能使用 excel 文件中的任何数据来填充数据库。他必须手动更正excel文件中的数据,然后再次尝试使用它。

【问题讨论】:

  • 验证失败但用户点击保存怎么办?即使验证失败也应该保存到db吗?
  • 在这种情况下,用户将无法访问 SaveButton。他可以更正excel文件并尝试再次使用它。我无法将无效数据插入 db - 这就是我使用验证的原因。
  • 你是什么意思“让我们假设用户没有看到验证消息。他点击 SaveData 按钮”我问这个是因为你说“用户无法访问 SaveButton”如果按钮无法访问用户如何点击它?
  • 尝试使用一个进程来读取验证 excel,如果某些行有无效数据停止它会显示错误消息,当您没有任何错误时,您可以显示保存按钮跨度>

标签: asp.net-mvc asp.net-mvc-3 asp.net-mvc-4 asp.net-mvc-5 exceldatareader


【解决方案1】:

如果我在你那里 - 我会将 excel 上传到服务器,验证它并

  1. 如果验证失败 - 将验证日志作为文本文件返回给用户。

  2. 如果验证成功 - 将文件上传到数据库,无需额外确认。

在任何情况下,用户都无法修复网格中的错误,因此在加载有效的 Excel 之前将无法访问保存按钮。

在某些情况下,您可以将添加了验证列的 Excel 返回给用户。但我不确定这对用户是否更有用。

【讨论】:

  • 我明白了。我需要在我的页面上的表格中显示验证消息并使用分页。我不能只返回带有日志的文本文件。
  • 在这种情况下,您可以将此数据保存到某个中间表而无需验证,并为用户提供解决表单问题的可能性。但通常,如果您的用户想要将 excel 文件加载到您的系统中,他不想在您的界面中工作,也不想在您的界面中阅读验证消息。
  • 你知道吗...我改变了主意。导入选项专用于管理员(在我的应用程序中) - 他可以使用文本文件日志并查看数据的情况。我会将文本文件返回给用户。
【解决方案2】:

我建议你, 将文件加载到服务器。 读取 excel 文件的行和列并将其加载到数据集中。 将一个新列作为错误添加到数据集中,现在验证数据集中的每一行,如果您发现该行有任何错误,然后将其推送到该错误列并将标志设置为 true。

遍历所有行后,如果标志为真,则在用户界面上返回数据集或返回为 excel。

如果没有错误,则可以将excel保存到db。

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 2015-06-06
    • 1970-01-01
    • 1970-01-01
    • 2012-02-14
    • 2011-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多