Percorso lettura immagine.

giovedì 06 febbraio 2014 - 23.39
Tag Elenco Tags  VB.NET  |  .NET 3.5  |  Windows 7  |  Visual Studio 2010  |  SQL Server 2008 R2  |  Crystal Reports 2008

Peppino Profilo | Junior Member

Ciao a tutti.
Ho un problemino che non riesco a risolvere.
Per visualizzare un'immagine associata ad un file, inizialmente avevo pensato di memorizzare l'immagine direttamente nel database ma poi guardando un po in giro ho trovato la soluzione di memorizzare nel database il percorso di dov'è posizionato con una variabile stringa(penso soluzione migliore) e che vado a leggere con il seguente codice:

Dim ImmagineSelezionata As String = TxtLogo.Text
Dim FilestreamImmagine As New FileStream(ImmagineSelezionata, FileMode.Open, FileAccess.Read)
PictureBox1.Image = Image.FromStream(FilestreamImmagine)

Ma fino a qui è OK, il problema nasce se per una qualsiasi ipotesi l'immagine viene spostata o cancellata dalla posizione in cui stava quando è stata memorizzata la stringa del percorso nel database, in quel caso mi ritorna errore e non mi permette nemmeno di modificarlo. Come devo impostare la condizione per far si che se il percorso memorizzato non viene trovato mi deve avvisare con un messaggio d'avviso e poi continuare e di conseguenza darmi la possibilità di modificare o inserire un nuovo percorso.
Ringrazio anticipatamente per l'eventuale risposta.
Ciao a tutti. Peppino.

alx_81 Profilo | Guru

>Ciao a tutti.
ciao

>Ma fino a qui è OK, il problema nasce se per una qualsiasi ipotesi
>l'immagine viene spostata o cancellata dalla posizione in cui
>stava quando è stata memorizzata la stringa del percorso nel
>database, in quel caso mi ritorna errore e non mi permette nemmeno
>di modificarlo. Come devo impostare la condizione per far si
>che se il percorso memorizzato non viene trovato mi deve avvisare
>con un messaggio d'avviso e poi continuare e di conseguenza darmi
>la possibilità di modificare o inserire un nuovo percorso.
Non puoi fare altro che gestirlo tu in qualche modo mentre vai a leggere.. se non esiste fai un link nell'image box forzato ad un tuo "NOIMAGE"..
Con la soluzione del path su DB, inoltre, dovrai sempre tenere presente che i backup/restore ignoreranno le immagini, poichè totalmente disaccoppiate.
Con SQL Server puoi attivare una funzionalità chiamata FILESTREAM (http://technet.microsoft.com/it-it/library/gg471497.aspx) che ti rende "atomica" ogni operazione sui file.
Se non usi la soluzione builtin di SQL Server, potresti creare una cartella su cui vai a mettere i file gestendo bene i permessi per fare in modo che nessuno possa metterci le mani, eccetto gli amministratori di sistema.
In tal modo nessuno sposta o mette le mani sui file immagine. Tuttavia, ti consiglio di mettere sempre una logica di noimage sull'imagebox.

>Ringrazio anticipatamente per l'eventuale risposta.
di nulla!
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://blogs.dotnethell.it/suxstellino
http://suxstellino.wordpress.com
http://mvp.microsoft.com/profiles/Alessandro.Alpi
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 !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5