File jpg

sabato 04 ottobre 2014 - 17.07
Tag Elenco Tags  VB.NET  |  .NET 3.5  |  MySQL 5.5

Mau67 Profilo | Expert

Un saluto al forum,
utilizzo visual studio 2012 win form e un database mysql, dovre caricare all'interno della mia tabella in un campo un file jpg da un dataset, ho settato il campo del dataset con System.Byte() il codice che uso per caricare il file jpg con openfiledialog è il seguente:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

io ho corretto il codice per far leggere i dati da un dataset ma non funziona:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

mi aiutate a modificare il codice?
Grazie
Mau67

ysdemarc Profilo | Expert

Si parla sempre di campi blob.

Innanzi tutto è sbagliato il tipo di campo che non può essere un byte bensì una matrice di byte ( byte[] )

questa funzione ti restituisce il campo blob da un percorso fisico
public static byte[] ToBlob(string file) { FileStream fs = null; byte[] result = null; if (File.Exists(file)) { //Legge i dati del file indicato in un buffer fs = new FileStream(file, FileMode.Open, FileAccess.Read); result = new byte[fs.Length]; fs.Read(result, 0, (int)fs.Length); fs.Close(); } return result; }

questa funzione invece ti restituisce un campo blob da un oggetto Image
Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra


Vincenzo
Programmatore sbilenco

Mau67 Profilo | Expert

Ok grazie della risposta,
se devo caricare il campo blob nel dataset come devo settare il campo?
grazie
Mau67

ysdemarc Profilo | Expert

il campo è un byte[] (osia un array di byte)

quindi se costruisci un DataTable a runtime potresti fare qualcosa di simile:

DataTable dt = new DataTable(); dt.Columns.Add("Image", typeof(byte[])); //aggiungi la riga o la leggi a seconda quello che ti serve DataRow dr = dt.NewRow(); byte[] blob = ToBlob(filejpg); if (blob == null) { dr["Image"] = DBNull.Value; } else { dr["Image"] = blob; } //aggiungi la riga alla collection dt.Rows.Add(dr);

se invece devi metterla in una struttura tabellare in Sql Server io ho il tipo dati "image", se non lo trovi prova il tipo dati "binary"



Vincenzo
Programmatore sbilenco
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