Лучший способ для пользователей импортировать в базу данных? - PullRequest
1 голос
/ 27 января 2009

Я знаю, что это не уникальная проблема, но мне не повезло найти примеры того, как другие решают эту проблему. У меня есть интранет-приложение asp.net, которое я унаследовал и на котором основываюсь. Одна конкретная страница предназначена для ввода данных, чтобы подать заявку на утверждение, и у нас есть форма, в которую можно вводить одну запись за раз, и она проверяется в реальном времени в базе данных на предмет достоверной информации о продукте.

Меня попросили добавить функцию, с помощью которой пользователи могли бы импортировать большое количество записей одновременно, чтобы сэкономить им время на просмотр каждого текстового поля и раскрывающегося списка по одной, иногда для более чем 100 записей.

Решение, которое я выбрал в качестве своего первого варианта, заключается в создании электронной таблицы Excel, которую они могут открыть по ссылке на странице, которую я отформатировал в шаблон, в который они могут копировать / вставлять свои данные, сохранять, а затем загружать на сервер и импортируйте как связанный серверный объект на сервер sql.

В связи с характером этого решения и некоторыми импортируемыми данными я должен запрограммировать некоторую обработку ошибок в VB для электронной таблицы, и, если я когда-нибудь найду исправление ошибки, нет никакого хорошего способа гарантировать, что пользователь собирается использовать версию на странице, а не какую-либо локальную копию, которую они сохранили, которая может сломаться при попытке импорта.

Я исключил одно большое текстовое поле, которое я пытаюсь проанализировать, потому что у меня нет никакого контроля над тем, как пользователь вводит данные.

Есть ли какое-то лучшее и, возможно, более очевидное решение, которого мне не хватает?

Ответы [ 4 ]

1 голос
/ 27 января 2009

Неконтролируемые процессы импорта электронных таблиц - это плохо. Слишком много вещей, которые пользователи могут сделать, чтобы прервать процесс. Если вы собираетесь выполнять массовую загрузку из электронных таблиц, процесс должен состоять из следующих компонентов:

  • контролируемый файл шаблона, загружается пользователем и генерируется из приложения (если шаблон не нужно менять, это может просто жить в папке где-то).

  • Проверка, чтобы убедиться, что шаблон был использован.

  • Фактический процесс загрузки.

  • Экран, на котором пользователь может проверить что они импортировали, редактировать и зафиксируйте загрузку.

Проверка и проверка части - это хороший способ поместить элемент управления для загрузки, который может проверять данные. Пользователь должен проверить импортированные данные и подтвердить их вручную. Это возлагает ответственность за корректность на пользователей и дает им возможность видеть и исправлять загрузку.

0 голосов
/ 27 января 2009

Ваш ответ предполагает, что Excel является лучшей системой для ввода и управления данными, чем вы можете создать на веб-сайте. Однако в .NET существует множество редактируемых опций Datagrid, которые могут эмулировать возможности Excel.

Если, с другой стороны, вы хотите, чтобы люди могли работать с локальной копией данных без подключения к сети, вы можете рассмотреть возможность автоматического создания электронных таблиц на общем диске или в папке пользователя (одна электронная таблица на пользователя), которая связана с базой данных с помощью одной из систем доступа к данным.

Удачи!

0 голосов
/ 27 января 2009

Возможно, это то, что вы имели в виду, но вместо электронной таблицы я бы использовал файл csv (значения, разделенные запятыми). Его по-прежнему можно открывать и редактировать в Excel, но также можно легко редактировать в других редакторах для тех пользователей, у которых нет Excel. Это также облегчит вам процесс разбора.

Если вы беспокоитесь о версии, возможно, вы можете сделать один из заголовков столбцов пустым столбцом, который содержит только текущую версию.

0 голосов
/ 27 января 2009

Загрузите файл на свой сайт, проанализируйте файл в вашем приложении и, используя ту же логику, что и ваша сеть (если вы используете модель домена), создайте свои заявки. Вы можете загружать файлы CSV или любой формат, который вы можете анализировать на сервере.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...