[VB.NET] Image opslaan in Dataset Hoe?

Pagina: 1
Acties:

  • Swerfer
  • Registratie: Mei 2003
  • Laatst online: 26-05 22:09
Ik heb een dataset gemaakt waarin onder andere een tabel met een kolom 'Thumbnail' zit. Het type kolom is object.

Nu wil ik gedownloade thumbnails (gif en jpg), als images , tijdelijk opslaan in die dataset in de kolom 'Thumbnail'

Hoe kan ik die thumbnails in de dataset opslaan, en hoe kan ik de thumbnail weer als image eruit halen?

Home Assistant | Unifi | LG 51MR.U44 | Volvo EX30 SMER+ Vapour Grey, trekhaak | SmartEVSE V3 | Cronos Crypto.com


  • bramseltje
  • Registratie: September 2001
  • Laatst online: 23-05 10:13
Ik heb nog wel ergens een stukje code liggen dat hetzelfde doet in ASP, maar weet je zeker dat je dat wil? Je database wordt er onnoemelijk groot van. En bovendien is het ook niet de snelste methode...

Kun je niet beter gewoon de bestandsnaam van hje thumbnails in je database opslaan? Da's een stuk makkelijker... Zit je ook niet met de verschilllende bestandsformaten waar je rekening mee moet houden, de enorme hoeveelheid data, het geheugenge(mis)bruik....

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 13:28

gorgi_19

Kruimeltjes zijn weer op :9

Erhm.. :?

Dataset != Database

Sowieso wordt alles in datatables opgeslagen; 1 dataset bestaat uit 0 of meer datatables.
Hoe kan ik die thumbnails in de dataset opslaan?
Dit antwoord is dus: Niet

[ Voor 108% gewijzigd door gorgi_19 op 24-12-2003 18:05 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • EfBe
  • Registratie: Januari 2000
  • Niet online
Swerfer schreef op 24 december 2003 @ 16:09:
Ik heb een dataset gemaakt waarin onder andere een tabel met een kolom 'Thumbnail' zit. Het type kolom is object.

Nu wil ik gedownloade thumbnails (gif en jpg), als images , tijdelijk opslaan in die dataset in de kolom 'Thumbnail'

Hoe kan ik die thumbnails in de dataset opslaan, en hoe kan ik de thumbnail weer als image eruit halen?
Microsoft heeft in al haar wijsheid besloten dat de DataSet's datacolumns gebaseerd zijn op het object DataColumn. Een DataColumn object kan data aan van de volgende types:
Boolean
Byte
Char
DateTime
Decimal
Double
Int16
Int32
Int64
SByte
Single
String
TimeSpan
UInt16
UInt32
UInt64

Je kunt (weet ik niet zeker) wellicht dus een Byte array plaatsen in een column. Mocht dit niet werken dan weet je waarom, dan ondersteunt DataColumn geen byte arrays.

Creator of: LLBLGen Pro | Camera mods for games
Photography portfolio: https://fransbouma.com


  • Swerfer
  • Registratie: Mei 2003
  • Laatst online: 26-05 22:09
EfBe schreef op 24 december 2003 @ 18:55:
[...]


Microsoft heeft in al haar wijsheid besloten dat de DataSet's datacolumns gebaseerd zijn op het object DataColumn. Een DataColumn object kan data aan van de volgende types:
Boolean
Byte
Char
DateTime
Decimal
Double
Int16
Int32
Int64
SByte
Single
String
TimeSpan
UInt16
UInt32
UInt64

Je kunt (weet ik niet zeker) wellicht dus een Byte array plaatsen in een column. Mocht dit niet werken dan weet je waarom, dan ondersteunt DataColumn geen byte arrays.
Dit zijn inderdaad de datatypes die microsoft aangeeft, maar als ik een dataset met visual studio aanmaak, kan ik ook voor objecten kiezen:

Afbeeldingslocatie: http://62.216.6.190/images/dataset.gif

Maar misschien is Byte[] wel een oplossing...

Is geen byte array :(

Moet ik toch proberen een image in een object datatype te krijgen...

[ Voor 6% gewijzigd door Swerfer op 24-12-2003 22:33 ]

Home Assistant | Unifi | LG 51MR.U44 | Volvo EX30 SMER+ Vapour Grey, trekhaak | SmartEVSE V3 | Cronos Crypto.com


  • Swerfer
  • Registratie: Mei 2003
  • Laatst online: 26-05 22:09
Oplossing is heel simpel:

Gewoon een image in de kolom met datatype object plaatsen...

Waar het eerder fout ging was dat ik als standaard waarde voor die kolom DBNull had opgegeven. Ik probeerde eerst namelijk of ik het object kon inlezen als image volgens onderstaande regel, maar de waarde DBNull is geen image en kreeg ik dus een foutmelding.

Dim Thumbnail As Image = ds1.Tables("Photos").Rows(Row).Item("Thumbnail")

Als ik eerst een image in de dataset plaats, dan gaat bovenstaande code wel goed...

Home Assistant | Unifi | LG 51MR.U44 | Volvo EX30 SMER+ Vapour Grey, trekhaak | SmartEVSE V3 | Cronos Crypto.com


  • EfBe
  • Registratie: Januari 2000
  • Niet online
een image kun je prima in een byte array laden btw. Maar het is wel raar dat je middels de designer een object er in kunt plaatsen (overigens terecht, waarom zou je geen object er in kunnen plaatsen) maar de docs roepen dat het beperkt is tot een setje types :)

Creator of: LLBLGen Pro | Camera mods for games
Photography portfolio: https://fransbouma.com


  • Swerfer
  • Registratie: Mei 2003
  • Laatst online: 26-05 22:09
EfBe schreef op 25 december 2003 @ 00:29:
een image kun je prima in een byte array laden btw. Maar het is wel raar dat je middels de designer een object er in kunt plaatsen (overigens terecht, waarom zou je geen object er in kunnen plaatsen) maar de docs roepen dat het beperkt is tot een setje types :)
Het werkt in ieder geval perfect met een object. Ik heb een overzicht van thumbnails gemaakt, die geladen worden vanaf een internet site. Eénmaal geladen, worden de thumbnails in een dataset opgeslagen zodat het bladeren door de thumbnails zeer snel gaat. Bij elke nieuwe bladzijde wordt er eerst gekeken of de thumbnails van die bladzijde al in de dataset staan, zoniet, dan worden de thumbnails eerst geladen vanaf internet...

Ik ben weer helemaal :)

Home Assistant | Unifi | LG 51MR.U44 | Volvo EX30 SMER+ Vapour Grey, trekhaak | SmartEVSE V3 | Cronos Crypto.com


  • whoami
  • Registratie: December 2000
  • Laatst online: 14:31
EfBe schreef op 25 december 2003 @ 00:29:
een image kun je prima in een byte array laden btw. Maar het is wel raar dat je middels de designer een object er in kunt plaatsen (overigens terecht, waarom zou je geen object er in kunnen plaatsen) maar de docs roepen dat het beperkt is tot een setje types :)
In .NET is alles van het type Object. Dat is nl. de ultieme base class. Alles is afgeleid van Object, en de primitieven (int, double, ....) hebben ook een reference type dat van Object afgeleid is naar waar ze kunnen geboxed worden.
Vandaar wel logisch dat je er ook Objects kunt in proppen (een Int32 is nl. een Object).

https://fgheysels.github.io/


  • EfBe
  • Registratie: Januari 2000
  • Niet online
Zo logisch is dat niet. De eigenlijke store routine kan gewoon type checks doen en sommige types ignoren. Ik kan me de code niet meer herinneren, maar nog wel dat ik een non-standaard type in een datacolumn wilde stoppen en dat dat niet wilde, kennelijk had ik naar object moeten casten (maar de docs lezende had dat geen zin, maar kennelijk zijn die fout :) ). Ach ja ... :)

Overigens snap ik niet waarom TS de images niet gewoon in een hashtable oid opslaat. :)

[ Voor 13% gewijzigd door EfBe op 26-12-2003 10:56 ]

Creator of: LLBLGen Pro | Camera mods for games
Photography portfolio: https://fransbouma.com


  • Swerfer
  • Registratie: Mei 2003
  • Laatst online: 26-05 22:09
EfBe schreef op 26 december 2003 @ 10:56:
Overigens snap ik niet waarom TS de images niet gewoon in een hashtable oid opslaat. :)
Ik sla alleen thumbnails op die worden geladen van het internet, of lokaal worden geopend. Het gaat vooral om snelheidswinst als ik een bepaald aantal van die thumbnails tegelijk wil tonen. Immers, als ik ze steeds opnieuw van internet moet laden, kost dat een hoop tijd.

Ik sla niet alleen de thumbnails op in de dataset, maar meer informatie. Onder andere wat de fysieke locatie van de image is en de naam van de image, een omschrijving, enzv enzv...

Dus heb ik het liefst alle gegevens van een image bij elkaar in één dataset...

Home Assistant | Unifi | LG 51MR.U44 | Volvo EX30 SMER+ Vapour Grey, trekhaak | SmartEVSE V3 | Cronos Crypto.com

Pagina: 1