Mam projekt przełącznika świetlnego w studiu wizualnym2013, przy użyciu vb.net. Chciałbym, aby użytkownik mógł kliknąć przycisk i umożliwić włącznikowi światła znalezienie pliku programu Excel i przesłanie tego pliku do tabeli SQL zgodnie z wcześniej ustalonym odwzorowaniem kolumny.
Wolałem używać rozszerzenia Office Integration dla Visual Studio, które współpracowałem z VS 2013, pobierając go z tego linku: http://www.ge.tt/71iuRQv/v/0 Jednak dokumentacja i przykładywydaje się, że integracja pakietu Office jest bardzo trudna w uzyskiwaniu arkusza kalkulacyjnego programu Excel do wyświetlania w kliencie internetowym Lightswitch, a nie w tabeli danych SQL, gdzie jest to potrzebne. Oto przykłady, które śledziłem: http://blogs.msdn.com/b/bethmassi/archive/2012/07/18/new-and-improved-office-integration-pack-extension-for-lightswitch.aspx
Alternatywnie mam już zapisanei mogę poprosić serwer o wywołanie tego przechowywanego proc, wysyłając rozszerzenie API sieci Web od klienta do serwera. Mam to już działa dla innych przechowywanych proc, zgodnie z przykładami Beth Masi i Paul van Bladel. (Stackoverflow nie pozwoli mi opublikować linków ...)
Niepożądaną częścią tego podejścia jest to, że przechowywany proc jest stary i nieuporządkowany.
Szukałem i szukałem, ale jeszcze nie znalazłem nikogo, kto podejdzie do tego problemu w VS 2013 z włącznikiem światła. Masz jakieś przydatne porady?
Odpowiedzi:
0 dla odpowiedzi № 1Użyłem metody opisanej przez Matt Sampson do przechowywania plików słownych i działa bardzo dobrze. Ponieważ po prostu przechowuje surowy plik binarny, powinien również obsługiwać pliki Excel.
Jeśli tworzysz tabelę w LightSwitch, użyj Binary
Rodzaj. Jeśli używasz SQL, utwórz skrypty varbinary(MAX)
.
Musisz utworzyć niestandardowe okno dialogowe Silverlight, aby uzyskać dostęp do OpenFileDialog
obiekt. Następnie otwórz plik jako FileStream
.
Na koniec należy dodać moduł obsługi dla zamkniętej metody formantu, a następnie pokazać kontrolkę użytkownikowi. Najprawdopodobniej zrobione za pomocą przycisku. Trzeba to zrobić na głównym dyspozytorze.
Przykłady kodu są w języku C #, ale właśnie użyłem jednego z wielu dostępnych tłumaczy w Internecie i skopiowałem / wkleiłem kod VB.NET.
0 dla odpowiedzi nr 2
Inną opcją może być rozważenie ostrzałuw czasie wykonywania DTSEXEC w celu wykonania pakietu SSIS w celu wykonania przesyłania - szczególnie jeśli docelowe arkusze kalkulacyjne Excel mają predefiniowane układy i typy danych zawartości.
Jeszcze prościej, możesz być w stanie korzystać z WSTAW BULK W SQL Server polecenie, aby wykonać zadanie - choć wymagałoby to połączenia klienta SQL z bazą danych.
HTH