2010-05-17 62 views
1

我用這個代碼在我的DB保存和檢索在SQL數據庫中的圖像從C#問題

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()); 

但是當我使用此代碼檢索該

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;

它工作完全正常,但如果我用我自己生成的查詢更新此類似

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()+"')"; 

下一次我使用相同的代碼檢索圖像並顯示它上面的應用。計劃拋出一個異常

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

所以任何一個可以告訴我爲什麼我不能弄明白。

回答

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); 

這件事情與此代碼工作的歡呼LOLZ

相關問題