Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
ASP.NET 1.0/1.1
Recupero immagini Blob da sql server
giovedì 04 novembre 2004 - 19.43
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
unodidue
Profilo
| Newbie
28
messaggi | Data Invio:
gio 4 nov 2004 - 19:43
Panorama ...
Ho delle immagini in una tabella sql server.
Riesco ad estrarle e a salvarle su hard disk e successivamente riesco a visualizzarle su pagine web
Riesco anche la maggior parte delle volte a cancellare nuovamente le immagini fisicamente dall'hard disk.
Problema ...
qualcuno conosce un modo per non dover salvare le immagini sull'hd?
Conosco il memorystream per le windowsform ma per le webform non c'è un'utilità simile?
Se non c'è sapete suggerirmi un procedimento per cancellare di volta in volta le immagini che ho creato?
Grazie a tutti in anticipo per l'aiuto.
GvnnRules
Profilo
| Senior Member
436
messaggi | Data Invio:
gio 4 nov 2004 - 23:40
No c'è bisogno che le estrai, poi le salvi e poi le cancelli, se vuoi solo visualizzarle c'è un metodo un pò più semplice.
Allora prima di tutto ti servono 2 pagine, una chiamiamola index.aspx, l'altra image.aspx.
Nella prima pagina non devi far altro che mettere un tag image che rimandi alla pagina image.aspx, ad esempio:
<img src="images.aspx?ID=1">
Per ID=1 immaginiamo che sia l'id nel tuo database.
Ora passiamo alla pagina image.aspx, nella parte HTML non mettere nulla, quindi cancella tutto, tranne il riferimento al codebehind (naturalemente se usi visual studio :-P), nel code behind devi:
1. aprire la connessione al database
2. Eseguire la query
3. Leggere i byte dal campo blob
4. fare un response.binaryWrite, indicando che è un'immagine
Ecco un codice di esempio (Spero che in VB.NET ti vada bene :-P )
'apro la connessione
Dim Conn As System.Data.OleDb.OleDbConnection
'imposti la stringa di connessione come preferisci e apri la connessione
Conn.Open()
'creo la query
Dim strSQL As String = "SELECT IMMAGINE FROM TABELLA WHERE ID = " & Request("ID")
'Eseguo la query
Dim oleQuery As New System.Data.OleDb.OleDbDataAdapter(strQuery, Conn)
'ricavo il dataset
Dim QueryDataSet As New System.Data.DataSet
objDataset = oleQuery.Fill(QueryDataSet, "Immagine")
'recupero la mia riga
Dim myRow As DataRow
myRow = QueryDataSet.Tables("Immagine").Rows(0)
'invio i dati al client
MyData = myRow("IMMAGINE")
Response.Buffer = True
Response.ContentType = "image"
Response.BinaryWrite(MyData)
'chiudo la connessione
Conn.Close()
Spero funzioni :-P ... l'ho copiato da una mia pagina già fatta, dovrebbe funzionare.
Ciaoz
Gvnn
PS: Io ho utilizzato l'OLEDB Come connessione, tu puoi usare quella che preferisci :-P
GvnnRules
Profilo
| Senior Member
436
messaggi | Data Invio:
gio 4 nov 2004 - 23:41
Errata corrige:
NoN c'è bisogno che le estrai ....
unodidue
Profilo
| Newbie
28
messaggi | Data Invio:
ven 5 nov 2004 - 11:49
Grazie GvnnRules è un ottimo consiglio ... ora provo ...
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
lun 8 nov 2004 - 00:02
Fortunatamente in ASP.NET 2.0 ci sarà una DataGrid ben più potente (nuovo nome GridView) che farà questa operazione per noi senza bisogno di scrivere codice.
ciao
David
unodidue
Profilo
| Newbie
28
messaggi | Data Invio:
lun 8 nov 2004 - 08:57
Allora in attesa di Asp .net 2.0 ho risolto nel modo descritto sotto. Di nuovo grazie ...
ciao a tutti
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !