i have convert image saved in sql server database binary column name "img". have picturebox1 ready show image.
now want import binary data image, , i'm trying code in vb.net example:
dim queries string queries = "select * studentdata std_fname='" & combobox1.text & "'" dim com new sqlcommand(queries, sqlconn) sqlconn.open() dim ds new sqldataadapter(queries, sqlconn) dim dr sqldatareader dr = com.executereader() while dr.read std_fnametextbox.text = dr("std_fname") std_lnametextbox.text = dr("std_lname") agetextbox.text = dr("age") addresstextbox.text = dr("address") statetextbox.text = dr("state") citytextbox.text = dr("city") countrytextbox.text = dr("country") ic_passporttextbox.text = dr("ic_passport") dobdatetimepicker.text = dr("dob") picturebox1.image = dr("img") 'here problem. if run it, ask me convert binary image first. end while sqlconn.close() the problem is, don't know how convert binary image in situation. , yes, i've been googling it, can't seem right answer.
dr("img") returns either dbnull.value, or byte[]. can use stream overload of bitmap constructor load this. in c# (should easy translate vb), can this:
var imagedata = (byte[])dr["img"]; using (var ms = new memorystream(imagedata)) { var bmp = new bitmap(ms); // work bmp } as mark correctly noted, you're supposed keep stream open whole life-time of bitmap - bit trickier seems, because bitmap doesn't keep reference stream.
the easiest way handle clone bitmap after create it, remove dependency on stream. unless can whatever work need within using - unlikely if want display in picturebox.
you can use imageconverter.convertfrom directly, create memorystream if used on raw byte[] data :)
Comments
Post a Comment