2010-05-17 82 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

相关问题