Как загрузить лист Excel в таблицу SQL в веб-клиенте Lightswitch?

У меня есть проект выключателя света в Visual Studio 2013, использующий vb.net. Я хотел бы, чтобы пользователь мог нажать кнопку и заставить lightswitch найти файл excel и загрузить этот файл в таблицу sql в соответствии с заранее определенным сопоставлением столбцов.

Я предпочел использовать расширение Office Integration для Visual Studio, которое я получил для работы с VS 2013, загрузив его по этой ссылке: http://www.ge.tt/71iuRQv/v/0 Однако документация и примеры для офисной интеграции кажутся очень сложными для отображения электронной таблицы Excel в веб-клиенте lightswitch. , а не в таблицу данных sql, где мне это нужно. Вот примеры, которые я использовал: http://blogs.msdn.com/b/bethmassi/archive/2012/07/18/new-and-improved-office-integration-pack-extension.-for-lightswitch.aspx

В качестве альтернативы у меня есть существующая хранимая процедура, и я могу запросить, чтобы сервер вызывал эту хранимую процедуру, отправив расширение веб-API с клиента на сервер. У меня это уже работает для других хранимых процессов, согласно примерам Бет Маси и Пола ван Бладеля. (Stackoverflow не позволяет мне публиковать ссылки...)

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

Я искал и искал, но еще не нашел никого, кто бы подошел к этой проблеме для VS 2013 с выключателем света. Какой-нибудь полезный совет?


person 1010100 1001010    schedule 03.03.2014    source источник


Ответы (2)


Я использовал метод, подробно описанный в Matt Sampson для хранения файлов Word, и это работает очень хорошо. Поскольку он просто хранит необработанный двоичный файл, он должен так же хорошо обрабатывать файлы Excel.

Если вы создаете таблицу в LightSwitch, используйте тип Binary. Если вы используете сценарии создания SQL, используйте varbinary(MAX).

Вам нужно создать пользовательское диалоговое окно Silverlight, чтобы получить доступ к объекту OpenFileDialog. Затем откройте файл как FileStream.

Наконец, вам нужно добавить обработчик закрытого метода элемента управления, а затем показать элемент управления пользователю. Скорее всего сделано на кнопке. Это нужно сделать на главном диспетчере.

Примеры кода написаны на C#, но я просто воспользовался одним из множества доступных в сети трансляторов и скопировал/вставил код VB.NET.

person embedded.kyle    schedule 04.03.2014

Другим вариантом может быть использование среды выполнения DTSEXEC для выполнения пакета SSIS для выполнения загрузки, особенно если целевые электронные таблицы Excel имеют предопределенные макеты и типы данных содержимого.

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

ХТН

person Ozziemedes    schedule 29.08.2014