Serializacja i praca z dokumentem w bazie danych
Jednym z zadań, które możesz wykonać podczas pracy z dokumentami, jest przechowywanie i pobieranie obiektów Document do i z bazy danych. Na przykład byłoby to konieczne, jeśli wdrażasz dowolny rodzaj systemu zarządzania treścią. Wszystkie poprzednie wersje dokumentów muszą być przechowywane w systemie bazodanowym. Możliwość przechowywania dokumentów w bazie danych jest również niezwykle przydatna, gdy Twoja aplikacja udostępnia usługę internetową.
Aspose.Words zapewnia możliwość konwersji dokumentu na tablicę bajtów w celu późniejszej pracy z tym dokumentem w bazie danych.
Konwertuj dokument na tablicę bajtów
Aby zapisać dokument w bazie danych lub przygotować dokument do transmisji w Internecie, często konieczna jest serializacja dokumentu w celu uzyskania tablicy bajtów.
Aby serializować obiekt Document w formacie Aspose.Words:
- Zapisz go w formacie MemoryStream, używając metody przeciążenia Save klasy Document.
- Wywołaj metodę ToArray, która zwraca tablicę bajtów reprezentujących dokument w postaci bajtów.
Powyższe kroki można następnie odwrócić, aby załadować bajty z powrotem do obiektu Document.
Poniższy przykład pokazuje, jak serializować obiekt Document w celu uzyskania tablicy bajtów, a następnie jak zdeserializować tablicę bajtów, aby ponownie uzyskać obiekt Document:
Możesz pobrać plik szablonu tego przykładu z Aspose.Words GitHub.
Przechowuj, czytaj i usuwaj dokument w bazie danych
W tej sekcji pokazano, jak zapisać dokument w bazie danych, a następnie załadować go z powrotem do obiektu Document
w celu pracy z nim. Dla uproszczenia nazwa pliku jest kluczem używanym do przechowywania i pobierania dokumentów z bazy danych. Baza danych zawiera dwie kolumny. Pierwsza kolumna “FileName” jest przechowywana jako String i służy do identyfikacji dokumentów. Druga kolumna “FileContent” jest przechowywana jako obiekt BLOB
, który przechowuje obiekt dokumentu w postaci bajtowej.
Poniższy przykład kodu pokazuje, jak skonfigurować połączenie z bazą danych i wykonać polecenia:
Poniższy przykład kodu pokazuje, jak zapisać dokument w bazie danych, następnie ponownie przeczytać ten sam dokument i na koniec usunąć z bazy danych rekord zawierający dokument:
Zapisz dokument w bazie danych
Aby zapisać dokument w bazie danych, przekonwertuj ten dokument na tablicę bajtów, jak opisano na początku tego artykułu. Następnie zapisz tę tablicę bajtów w polu bazy danych.
Poniższy przykład kodu pokazuje, jak zapisać dokument w określonej bazie danych:
Określ CommandString, który jest wyrażeniem SQL wykonującym całą pracę:
- Do zapisania dokumentu do bazy danych służy polecenie “INSERT INTO” i podanie tabeli wraz z wartościami dwóch pól rekordów – FileName i FileContent. Aby uniknąć dodatkowych parametrów, nazwa pliku jest pobierana z samego obiektu Document. Do wartości pola
FileContent
przypisane są bajty ze strumienia pamięci, który zawiera binarną reprezentację przechowywanego dokumentu. - Pozostała linia kodu wykonuje polecenie przechowujące dokument Aspose.Words w bazie danych.
Pobierz dokument z bazy danych
Aby pobrać dokument z bazy danych, wybierz rekord zawierający dane dokumentu w postaci tablicy bajtów. Następnie załaduj tablicę bajtów z rekordu do MemoryStream i utwórz obiekt Document, który załaduje dokument z MemoryStream.
Poniższy przykład kodu pokazuje, jak pobrać i zwrócić dokument z określonej bazy danych, używając nazwy pliku jako klucza do pobrania tego dokumentu:
Usuń dokument z bazy danych
Aby usunąć dokument z bazy należy użyć odpowiedniego polecenia SQL bez żadnych manipulacji na obiekcie Document.
Poniższy przykład kodu pokazuje, jak usunąć dokument z bazy danych, używając nazwy pliku do pobrania rekordu: