|
|
IN-VESTI DNW!!! Sono finalmente arrivate le nuovissime T-Shirt di DotNetWork!!! Con soli 15,00 € ci sosterrai nelle spese di gestione della Community e ti invieremo a casa una splendida maglietta. Se vuoi contribuire al mantenimento di DotNetWork.it Vai sulla pagina Iscrizioni Effettua il pagamento usando IWBank Oppure un Bonifico bancario (le coordinate sono sulla pagina Iscrizioni), inviaci una mail a support@dotnetwork.it indicandoci la tua taglia e l'indirizzo di spedizione. Non appena verificata la ricezione del pagamento provvederemo a spedirti la tua T-Shirt. Le magliette sono disponibili nelle taglie S-M-L-XL-XXL (in caso di esaurimento di una delle taglie, indica quella di "Backup"). Grazie per IN-VESTIRTI con NOI!!! .:DotNetWork Founders:.
|
|
|
|
|
Immagini su report Rdlc a run time
Ultimo Post 25 nov 2009 12.51 by Gianni. 6 Risposte.
|
Ordina:
|
 Posts:142
 |
| 20 nov 2009 15.04 |
|
Sto provando a caricare a run time delle immagini su un report rdlc. Uso questa Sub ************ Private Sub Prodotti_RowChanged(ByVal sender As Object, ByVal e As DataRowChangeEventArgs) If e.Action = DataRowAction.Add Then e.Row("Image") = StreamFile("D:\Documenti\Immagini\Zero\CE.jpg") End If End Sub Private Function StreamFile(ByVal filename As String) As System.Byte() Dim fs As New FileStream(filename, FileMode.Open, FileAccess.Read) ' Create a byte array of file stream length Dim ImageData As Byte() = New System.Byte(fs.Length - 1) {} 'Read block of bytes from stream into the byte array fs.Read(ImageData, 0, System.Convert.ToInt32(fs.Length)) 'Close the File Stream fs.Close() 'return the byte data Return ImageData End Function ************* Nel report ho inserito un campo di tipo System.Byte che al caricamento dei dati dovrebbe essere riempito dalla funzione StreamFile. Il problema è che mi viene sempre generato l'errore: Impossibile eseguire il cast di oggetti di tipo 'System.Byte[]' sul tipo 'System.IConvertible'.Impossibile archiviare <System.Byte[]> nella colonna IMAGE. Il tipo previsto è Byte. La procedura l'ho trovata scritta (e funzionante) in C#, ho provato a riscriverla in VB.NET ma ottengo sempre l'errore sopra. AIUTO!!!!! Questo messaggio di posta elettronica contiene informazioni di carattere confidenziale rivolte esclusivamente al destinatario sopra indicato. E' vietato l'uso, la diffusione, distribuzione o riproduzione del messaggio intero o di parte di esso a chiunque non ne sia il diretto destinatario. Nel caso aveste ricevuto questo messaggio di posta elettronica per errore, siete pregati di segnalarlo immediatamente al mittente e distruggere quanto ricevuto (compresi i file allegati) senza farne copia. Qualsiasi utilizzo non autorizzato del contenuto di questo messaggio costituisce violazione dell'obbligo di non prendere cognizione della corrispondenza tra altri soggetti, salvo più grave illecito, ed espone il responsabile alle relative conseguenze. Confidentially notice. This e-mail transmission may contain legally privileged and/or confidential information. Please do not read it if you are not the intended recipient(S). Any use, distribution, reproduction or disclosure by any other person is strictly prohibited. If you have received this e-mail in error, please notify the sender and destroy the original transmission and its attachments without reading or saving it in any manner.
|
|
|
|
|
 Posts:433
 |
| 20 nov 2009 15.28 |
|
A me pare che la riga: Impossibile eseguire il cast di oggetti di tipo 'System.Byte[]' sul tipo 'System.IConvertible'.Impossibile archiviare nella colonna IMAGE. Il tipo previsto è Byte. dica chiaramente che non puoi mettere un array di bytes in un campo image. le immagini da file si caricano cosi: in c# Image myImg = Image.FromFile("nomefile"); Bitmap myBmp = Bitmap.FromFile("nomefile"); oppure, in VB: Dim myImg as Image = Image.FromFile("nomefile") Dim MyBmp as Bitmap = Bitmap.FromFile("nomefile") HTH Max
|
|
|
|
|
 Posts:142
 |
| 20 nov 2009 15.43 |
|
Sono stato poco chiaro io. La situazione è questa: (La procedura l'ho ricavata da un esempio in C# Funzionante) Report rdlc con dataset come source dati Al dataset aggiungo un campo IMAGE di tipo System.Byte Nel report inserisco una table nelle cui celle metto i campi del dtset (compreso il campo IMAGE) praticamente ho seguito l'esempio riportato al link http://blogs.ugidotnet.org/PietroLibroBlog/archive/2008/11/25/image-memorystream-e-file-.rdlc.aspx Il problema è che riscrivendo la procedura in vb ottengo questo errore ________________________________ Da: Forms@dotnetwork.it [mailto:Forms@dotnetwork.it] Inviato: venerdì 20 novembre 2009 16.29 A: Gianni Albori Oggetto: DNW Forums: RE: Immagini su report Rdlc a run time [00003295:00004091] www.dotnetwork.it <http://www.dotnetwork.it> RE: Immagini su report Rdlc a run time Forum: .NET Framework - Desktop development - Inviato da: Walimay in data 20 nov 2009 15.28 A me pare che la riga: Impossibile eseguire il cast di oggetti di tipo 'System.Byte[]' sul tipo 'System.IConvertible'.Impossibile archiviare nella colonna IMAGE. Il tipo previsto è Byte. dica chiaramente che non puoi mettere un array di bytes in un campo image. le immagini da file si caricano cosi: in c# Image myImg = Image.FromFile("nomefile"); Bitmap myBmp = Bitmap.FromFile("nomefile"); oppure, in VB: Dim myImg as Image = Image.FromFile("nomefile") Dim MyBmp as Bitmap = Bitmap.FromFile("nomefile") HTH Max
|
|
|
|
|
 Posts:433
 |
| 20 nov 2009 16.03 |
|
ok, non ho mai fatto report rdlc pero' leggendo il messaggio di errore e l'articolo che hai indicato: Articolo (cit): aggiungere una colonna denominata Immagine, con proprietà DataType impostata su System.Byte[]: il tuo errore: Impossibile eseguire il cast di oggetti di tipo 'System.Byte[]' sul tipo 'System.IConvertible'.Impossibile archiviare nella colonna IMAGE. Il tipo previsto è Byte. Secondo me significa che tu stai cercando di infilare un array di bytes in un campo byte (singolo). e quasto on si puo' fare, e' pacifico. l'articolo dice che la colonna image deve essere di tipo System.Byte[] e quindi un array di bytes. Tornando al tuo errore leggo che il tipo previsto e' Byte. che appunto e' un valore singolo ! controlla al definizione della colonna Image. HTH Max. |
|
|
|
|
 Posts:142
 |
| 20 nov 2009 16.52 |
|
Hai ragione :-((( La colonna era definita System.Byte è bastato cambiarla in System.Byte[] e ora tutto funziona. Gianni Albori - Giben International Spa Per rispondermi mailto:gianni.albori[at]giben.it <END-CUT> ________________________________ Da: Forms@dotnetwork.it [mailto:Forms@dotnetwork.it] Inviato: venerdì 20 novembre 2009 17.04 A: Gianni Albori Oggetto: DNW Forums: RE: Immagini su report Rdlc a run time [00003295:00004093] www.dotnetwork.it <http://www.dotnetwork.it> RE: Immagini su report Rdlc a run time Forum: .NET Framework - Desktop development - Inviato da: Walimay in data 20 nov 2009 16.03 ok, non ho mai fatto report rdlc pero' leggendo il messaggio di errore e l'articolo che hai indicato: Articolo (cit): aggiungere una colonna denominata Immagine, con proprietà DataType impostata su System.Byte[]: il tuo errore: Impossibile eseguire il cast di oggetti di tipo 'System.Byte[]' sul tipo 'System.IConvertible'.Impossibile archiviare nella colonna IMAGE. Il tipo previsto è Byte. Secondo me significa che tu stai cercando di infilare un array di bytes in un campo byte (singolo). e quasto on si puo' fare, e' pacifico. l'articolo dice che la colonna image deve essere di tipo System.Byte[] e quindi un array di bytes. Tornando al tuo errore leggo che il tipo previsto e' Byte. che appunto e' un valore singolo ! controlla al definizione della colonna Image. HTH Max.
|
|
|
|
|
 Posts:662
 |
| 25 nov 2009 12.06 |
|
Scusami se mi intrometto, non so se il programma si riferisce anche ad un tuo recente post dove chiedevi dove salvare delle immagini se in un campo image del tuo databse o in una cartella.
Se sto dicendo qualcosa di sbagliato correggetemi.
Ho notato dal tuo codice che tu devi aggiungere la tua immagine in una datarow e pre aggiungerla fai lo streaming di un'immagina che si trova in una data cartella. Per recuperare tempo, penso, potresti salvare l'immagine già streamingata (termine coniato da me in questo momento che significa: il risultato ottenuto dallo streaming) in un campo byte del tuo database. In questo modo penso che dovresti recuperare tempo in quanto lo streaming della tua immagina già ce l'hai e in più non sei vincolato ad un cartella che se manomessa ti manda in errore il programma.
Spero di non aver detto nulla di sbagliato ma ho usato questo sistema per un mio programma e mi sono trovato bene.
Ciao Hidden |
|
|
|
|
 Posts:142
 |
| 25 nov 2009 12.51 |
|
Hai ragione, avevo pensato anch'io di provare una strada del genere. Penso che appena terminato il programma comincerò a memorizzare le immagini "streamizzate" in una tabella
Ciao e grazie
|
|
|
|
|
| Non sei autorizzato ad inviare una risposta. |
|
Active Forums 4.1
|
|
|
|
|
|
|
|
|
Icone e Toolstrip |
 |
Icone della giusta dimensione e Toolstrip modificate a runtime |
 |
|
2009/06/28 | Autore: Sabrina Cosolo
|
|
|
|
|
|
|
|
|
|
|
|
|
|