2010-08-09 8 views
7

मेरे पास PictureBox नियंत्रण है जिसमें मैं एक छवि प्रदर्शित करना चाहता हूं। मैंने अपनी छवियों को इस डेटा प्रकार के साथ एक एमएस एक्सेस डेटाबेस में सहेजा: OLE Object। मुझे इसे फिर से प्रदर्शित करना मुश्किल लगता है। कृपया मेरे कोड पर एक नज़र डालें, और क्या आप लोग इसके लिए समाधान तैयार कर सकते हैं। मुझे मिल गया इस Exception:मैं System.Byte [] से छवि को कैसे परिवर्तित कर सकता हूं? (सी # विंडो फॉर्म)

byte[] data = (byte[]) dt.Rows[0]["IMAGE"]; 
MemoryStream ms = new MemoryStream(data); 
pictureBox1.Image = Image.FromStream(ms); 

संपादित करें:

OleDbCommand cmd = new OleDbCommand("SELECT IMAGE FROM IMAGES WHERE ID = 1", myConn)); 
      cmd.CommandType = CommandType.Text; 
      OleDbDataAdapter da = new OleDbDataAdapter(cmd); 
      DataTable dt = new DataTable("dt"); 
      da.Fill(dt); 

      if (dt != null) 
      {    
       pictureBox1.Image = (Image)dt.Rows[0]["IMAGE"]; 
      } 

उत्तर

28

सबसे आसान तरीका है एक MemoryStream का उपयोग करें और Image.FromStream कॉल करने के लिए है:

Unable to cast object of type 'System.Byte[]' to type 'System.Drawing.Image'. 

यहाँ मेरी कोड है आप के खिलाफ चलाते हैं हंस द्वारा वर्णित समस्या, आपको मूल रूप से उस शीर्षलेख को बाहर करने की आवश्यकता है। एक बार जब आप को केवल बाइट सरणी प्राप्त कर लेते हैं, तो उपरोक्त कोड का उपयोग करें।

+0

बहुत बहुत धन्यवाद ...:) – yonan2236

+1

काम नहीं करेगा, एक्सेस छवि डेटा में एक शीर्षलेख जोड़ता है। –

+0

लेकिन मुझे पिक्चरबॉक्स विकल्प ठीक नहीं है ?? कृपया – SanamShaikh

संबंधित मुद्दे