簡體   English   中英

從C#問題在SQL數據庫中保存和檢索圖像

[英]Saving and retrieving image in SQL database from C# problem

我使用此代碼在數據庫的人員表中插入記錄

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

下次我使用與上面相同的代碼來檢索圖像並顯示它。 程序拋出異常

替代文字http://www.freeimagehosting.net/image.php?3bb5f0d4b3.jpg][img]http://www.freeimagehosting.net/uploads/th.3bb5f0d4b3.jpg

所以誰能告訴我為什么我不知道。

Query = "UPDATE Person SET Person_Image =@pic  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);

這個東西與這段代碼一起工作hurray lolz

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM