[ASP.NET + C#] DataAdapter + image

Pagina: 1
Acties:

  • stp_4
  • Registratie: Maart 2003
  • Laatst online: 29-07 17:11
Dag mensen,

Ik ben bezig met een asp.net pagina waar ik plaatjes wil laten zien. Deze plaatjes worden als datatype image opgeslagen in een sql database (binary data). Mijn vraag is hoe ik deze binary dat fysiek kan terugkrijgen in mij pagina. Ik maak nu gebruik van een SqlDataAdapter:

code:
1
2
3
4
5
6
SqlDataAdapter  getImage = new SqlDataAdapter("sp_getImage", myConnection);
         
getImage.SelectCommand.CommandType = CommandType.StoredProcedure;

DataSet ds = new DataSet();
getImage.Fill(ds, "getImage");

Nu wil ik de plaatjes fysiek ophalen in mijn HTML code laten zien met een databinder, bijvoorbeeld:
code:
1
DataBinder.Eval(Container.DataItem, "plaatje")


Dit werkt uiteraard niet. Hoe kan ik via een databinder de plaatjes in mijn HTML neer zetten?

[ Voor 17% gewijzigd door stp_4 op 31-10-2003 13:33 ]

stp - PSN ID: stp_4


  • whoami
  • Registratie: December 2000
  • Laatst online: 17:38
Het werkt niet.
Wat gebeurd er dan wel?

#define niet werken ?

https://fgheysels.github.io/


  • stp_4
  • Registratie: Maart 2003
  • Laatst online: 29-07 17:11
whoami schreef op 31 oktober 2003 @ 13:32:
Het werkt niet.
Wat gebeurd er dan wel?

#define niet werken ?
als ik zoals hierboven:
code:
1
<%#DataBinder.Eval(Container.DataItem, "plaatje")%>

gebruik dan krijg ik op mijn pagina System.Byte[] te zien

[ Voor 6% gewijzigd door stp_4 op 31-10-2003 13:36 ]

stp - PSN ID: stp_4


  • whoami
  • Registratie: December 2000
  • Laatst online: 17:38
Je bindt je image uit de DB dan niet aan een Image-Control?

https://fgheysels.github.io/


  • stp_4
  • Registratie: Maart 2003
  • Laatst online: 29-07 17:11
is een image control nodig dan? En over welke image control heb je het? <asp:Image/>? Ik moet toch op een 1 of andere manier gewoon het bestand kunnen databinden? Als bijvoorbeeld blaat.gif fysiek in database wordt opgeslagen kan ik deze niet op roepen in mn html met bijvoorbeeld?:
code:
1
<img="<%#DataBinder.Eval(Container.DataItem, "plaatje") %>">

stp - PSN ID: stp_4


  • whoami
  • Registratie: December 2000
  • Laatst online: 17:38
Ik vind het zowiezo beter dat je de Image zelf niet in de DB opslaat, maar dat je de bestandsnaam van de image in de DB opslaat.

https://fgheysels.github.io/


  • stp_4
  • Registratie: Maart 2003
  • Laatst online: 29-07 17:11
whoami schreef op 31 oktober 2003 @ 14:04:
Ik vind het zowiezo beter dat je de Image zelf niet in de DB opslaat, maar dat je de bestandsnaam van de image in de DB opslaat.
Dat deed ik in eerste instantie ook maar probeer nu te rommelen om alles in de database te zetten. Op deze manier heb ik geen omkijken meer naar mijn plaatjes die bij een bepaald item horen

stp - PSN ID: stp_4


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

whoami schreef op 31 oktober 2003 @ 14:04:
Ik vind het zowiezo beter dat je de Image zelf niet in de DB opslaat, maar dat je de bestandsnaam van de image in de DB opslaat.
offtopic:
/me is een beetje aan het twijfelen geslagen dat deze techniek de juiste techniek is. Dit is veroorzaakt door http://www.asp.net/Forums...?tabindex=1&PostID=327318 , vooral Thona had een paar punten.

Het performanceverlies is op te vangen door met outputcaching te gaan werken, icm parameters. Voordeel is dat je per definitie je integriteit van data bewaard, wat niet per se het geval hoeft te zijn als je bestanden op het FS plaatst.

Het enige punt wat wel overblijft, is dat database ruimte normaliter veel schaarser is dan diskspaceruimte.
stp_4 schreef op 31 oktober 2003 @ 13:53:
is een image control nodig dan? En over welke image control heb je het? <asp:Image/>? Ik moet toch op een 1 of andere manier gewoon het bestand kunnen databinden? Als bijvoorbeeld blaat.gif fysiek in database wordt opgeslagen kan ik deze niet op roepen in mn html met bijvoorbeeld?:
Erhm.. ja. Maar hier heb je nog zelf de code voor te schrijven. Je moet een aparte .aspx pagina maken, wat als enige doel heeft om de contenttype goed te zetten (Response.Contenttype) en verder de data moet schrijven. Je kan niet in de html het plaatje neerzetten; alleen naar de pagina die het plaatje wegschrijft.

Zie oa http://aspalliance.com/ar...er.aspx?aId=141&vId=&pId= ; met een beetje fantasie kan je hier de code uithalen die je nodig hebt.

[ Voor 66% gewijzigd door gorgi_19 op 31-10-2003 20:08 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo

Pagina: 1