Ciao Matteo,
Ho visto per caso questo post oggi , Un pò di tempo fa ci ho provato anch' io a fare la stessa cosa che vorresti fare tu , ma in effetti non toverai molto su come visualizzare dentro una GridView (o una ListView) un immagine pescata da un Sql, perchè come dice Luca, l'idea è "sbagliata" .
Come già sai i dati strutturati di un file qualsiasi devono esssere convertiti in semplici byte ( BLOB) prima di poter essere conservati in un Sql. Dunque se hai un BLOB che contiene i dati realtivi ad una immagine, prima di poterla visualizzare i dati devono essere riconvertiti nel file originale. Questo file poi dev'essere salvato da qualche parte, e finchè si tratta di una sola immagine magari lo puoi lasciare nella Ram. Ma se le immagini sono tanti , come si presuppone lo siano in una ListView o una GridView , tenere tutto nella Ram non è fattibile , pertanto questi file dovranno essere salvati nel file system ( cioè in una cartella del disco fisso) . A questo punto ti trovi i dati relativi alle tue immagini sia nel Sql che nel file system. La cosa sarebbe anche fattibile, ma se le immagini sono tanti ti trovi a sprecare inutilmente risorse di CPU e di memoria convertendo Blob in PNG e salvandoli sul disco fisso, per poi utilizzare ulteriore risorse quando hai finito, per cancellare i file dal disco fisso.
Per questo motivo in genere non si salvano i Bitmap, JPEG, PNG etc in un DataBase Sql . I file vengono salvati direttamente nel file system nel loro formato originale, poi nel DataBase Sql si mette il link diretto o il path dove si trova l' immagine. Questa è la soluzione più efficiente, ed è utilizzata da data base che hanno anche decine di migliaia di immagini.