c# 4.0 - retrieve image from MS Access -
i want retrieve image ms access database showing in picturebox code code this:
private void button1_click(object sender, eventargs e) { oledbconnection myconnection = new oledbconnection(configurationmanager.connectionstrings["connectionstring"].connectionstring); myconnection.open(); oledbcommand cmd = new oledbcommand("select * [images] id=1", myconnection); oledbdataadapter da = new oledbdataadapter(cmd); datatable dt = new datatable(); da.fill(dt); if (dt.rows.count > 0) { if (dt.rows[0]["aimage"] != dbnull.value) { picturebox.image = bytearraytoimage((byte[])dt.rows[0]["aimage"]); } } myconnection.close(); } bitmap bytearraytoimage(byte[] b) { memorystream ms = new memorystream(); byte[] pdata = b; ms.write(pdata, 0, convert.toint32(pdata.length)); bitmap bm = new bitmap(ms, false); ms.dispose(); return bm; }
but there error like:"parameter not valid." bitmap bm = new bitmap(ms, false);
don't know why?
from msdn documentation bitmap constructor: bitmap(stream, boolean)
a system.argumentexception thrown if:
stream not contain image data or nothing.
-or-
stream contains png image file single dimension greater 65,535 pixels.
and
remarks
you must keep stream open lifetime of bitmap.
due limitation of gdi+ decoder, system.argumentexception thrown if construct bitmap .png image file single dimension greater 65,535 pixels.
have checked properties of image retrieving access database see if describes error situation?
Comments
Post a Comment