2010-05-17 4 views
1

J'ai utilisé ce code pour insérer des enregistrements dans une table personne dans mon DBSauvegarde et récupération d'image dans la base de données SQL de C# problème

System.IO.MemoryStream ms = new System.IO.MemoryStream(); 
       Image img = Image_Box.Image; 
       img.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp); 
       this.personTableAdapter1.Insert(NIC_Box.Text.Trim(), Application_Box.Text.Trim(), Name_Box.Text.Trim(), Father_Name_Box.Text.Trim(), DOB_TimePicker.Value.Date, Address_Box.Text.Trim(), City_Box.Text.Trim(), Country_Box.Text.Trim(), ms.GetBuffer()); 

mais quand je récupérer cela avec ce code

byte[] image = (byte[])Person_On_Application.Rows[0][8]; 
         MemoryStream Stream = new MemoryStream(); 
         Stream.Write(image, 0, image.Length); 
         Bitmap Display_Picture = new Bitmap(Stream); 

Image_Box .Image = Display_Picture;

il fonctionne parfaitement bien, mais si je mets à jour avec ma propre requête généré comme

System.IO.MemoryStream ms = new System.IO.MemoryStream(); 
       Image img = Image_Box.Image; 
       img.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp); 
       Query = "UPDATE Person SET Person_Image ='"+ms.GetBuffer()+"' WHERE (Person_NIC = '"+NIC_Box.Text.Trim()+"')"; 

la prochaine fois que j'utiliser le même code pour récupérer l'image et l'affichage comme utilisé ci-dessus. Programme lance une exception

alt text http://www.freeimagehosting.net/image.php?3bb5f0d4b3.jpg][img]http://www.freeimagehosting.net/uploads/th.3bb5f0d4b3.jpg

Alors quelqu'un peut-il me dire pourquoi je ne peux pas le comprendre.

Répondre

0
Query = "UPDATE Person SET Person_Image [email protected] WHERE (Person_NIC = '" + NIC_Box.Text.Trim() + "')"; 
        SqlCommand cmd = new SqlCommand(Query); 
        SqlParameter picparameter = new SqlParameter(); 
        picparameter.SqlDbType = SqlDbType.Image; 
        picparameter.ParameterName = "pic"; 
        picparameter.Value = ms.GetBuffer(); 
        cmd.Parameters.Add(picparameter); 

        db.ExecuteSQL(Query); 

Cette chose a travaillé avec ce code hourra lolz