将Silverlight图像存储在SQL数据库中 [英] Store silverlight images in SQL database

查看:76
本文介绍了将Silverlight图像存储在SQL数据库中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用支持Silverlight的Web服务将Silverlight捕获的快照保存到MSSQL服务器数据库。当我运行项目时,silverlight应用程序工作正常,但图像不会保存在数据库中。我尝试了很多不同的方法,但我找不到任何解决方案。有谁可以帮我解决这个问题?谢谢..



这是我的代码



I use a Silverlight enabled Web Service to save Silverlight captured snapshots to MSSQL server database. when I run the project silverlight app is working fine but the images doesn''t save in the database. I tried a lot of different methods but I couldn''t find any solution. Can anyone please help me to solve this problem? thanks..

this is my code

CaptureSource source;
WriteableBitmap bitmap;
ImageService.ImageServiceClient client = new ImageService.ImageServiceClient();


//MainPage.xaml.cs
private void CaptureImageCompleted(object sender, 
CaptureImageCompletedEventArgs e)
        {
            
            try
            {
                client.OpenAsync();
                bitmap = new WriteableBitmap(e.Result);
                byte[] buffer = bitmap.ToByteArray();
                client.SaveImageAsync(buffer, txtname.Text);
                txtname.Text = "Done";
            }
            catch (Exception e1)
            {
                txtname.Text = "Error";
            }
            

        }













SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString);


//ImageService.svc.cs

   [OperationContract]
        public void SaveImage(byte[] buffer, String Name)
        {
            ImageConverter ic = new ImageConverter();
            Image img = (Image)ic.ConvertFrom(buffer);
           

            try
            {
                conn.Open();
                SqlCommand insertCommand = new SqlCommand("Insert into [pics] (label, pic) Values (@Label, @Pic)", conn);

                insertCommand.Parameters.Add("Pic", SqlDbType.Image, 0).Value = ConvertImageToByteArray(img, ImageFormat.Jpeg);
                insertCommand.Parameters.Add("Label", SqlDbType.VarChar, 0).Value = Name;

                int queryResult = insertCommand.ExecuteNonQuery();
            }
            catch (Exception e1) { }

        }

//Convert Image to byte[]
        private byte[] ConvertImageToByteArray(Image imageToConvert, ImageFormat formatOfImage)
        {
            byte[] Ret;
            try
            {
                using (MemoryStream ms = new MemoryStream())
                {
                    imageToConvert.Save(ms, formatOfImage);
                    Ret = ms.ToArray();
                }
            }
            catch (Exception) { throw; }
            return Ret;
        }

推荐答案

您好,可以找到您的解决方案这里



希望有帮助
Hi there, you can find your solution here.

Hope it helps


这篇关于将Silverlight图像存储在SQL数据库中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆