ASP.NET - SqlDataSource i parametr dla pola w bazie o typie VARBINARY
Dość problematyczne jest zagadnienie operacji Insert lub Update do bazy danych do pola o typie VARBINARY, jeśli musimy użyć do tego obiektu SqlDataSource, którego dostarcza nam technologia ASP.NET. Główny kłopot to dobranie odpowiedniego typu dla parametrów komend Update lub Insert, ale postaramy się temu zaradzić.
W czym rzecz?
Przyszło mi ostatnio używać obiektu SqlDataSource jako źródła danych z bazy jak i do wykonywania operacji dodania nowego rekordu lub modyfikacji istniejącego. Wszystko przebiegało dość sprawnie, do póki nie okazało się, że pole o typie VARBINARY(MAX), w którym przechowywane były pliki, również musi zostać obsłużone przez to pole. Trzeba dodać odpowiedni parametr komend Update i Insert, tyle że jakiego typu ma być ten parametr?
Jaki zdefiniować typ parametru?
Stanąwszy przed tym problemem, postanowiłem poszukać gotowego rozwiązania. Jak się okazało, wiele ludzi przede mną miało ten problem, niestety jednak większość rozwiązań, które podawano, zupełnie nie działała. Pojawiały się między innymi propozycje zdefiniowania parametrów:
Jak uzupełnić pole VARBINARY?
Warto wiedzieć jeszcze jedną rzecz, a mianowicie to w jaki sposób uzupełnić parament o typie Binary (w tym przypadku File) danymi tuż przed wykonaniem operacji Insert lub Update. Otóż powinniśmy wpiąć się w eventy OnInserting lub OnUpdating, by w nich uzupełnić interesujący nas parametr, co może wyglądać podobnie do:{
e.Command.Parameters["@File"].Value = bytes; // bytes jest typu byte[]
Komentarze (0) - Nikt jeszcze nie komentował - bądź pierwszy!