C# 在本地数据库中保存重要图片

C# 在本地数据库中保存重要图片,c#,database,image,windows-phone-7,windows-phone-8,C#,Database,Image,Windows Phone 7,Windows Phone 8,我可以将通讯录中联系人的图像保存在本地数据库中。但我可以做到,当我在VisualStudio的WindowsPhone模拟器中用相机拍摄照片时。当我从不同相册向联系人添加照片时,我的应用程序不会启动。这是我在数据库中添加图片的方法。但它适用于小尺寸图片。我怎样才能为所有尺寸的图片做到这一点 foreach (var result in e.Results) { using (ContactsListDataContext db = new ContactsListDataContext(

我可以将通讯录中联系人的图像保存在本地数据库中。但我可以做到,当我在VisualStudio的WindowsPhone模拟器中用相机拍摄照片时。当我从不同相册向联系人添加照片时,我的应用程序不会启动。这是我在数据库中添加图片的方法。但它适用于小尺寸图片。我怎样才能为所有尺寸的图片做到这一点

foreach (var result in e.Results)
{
    using (ContactsListDataContext db = new ContactsListDataContext(DBConnectionstring))
    {
        var stream = result.GetPicture();

        if (stream != null)
        {
            BitmapImage _newPhoto = new BitmapImage();
            _newPhoto.SetSource(stream);

            MemoryStream _memoryStream = new MemoryStream();
            WriteableBitmap _writingNewPhoto = new WriteableBitmap(_newPhoto);
            _writingNewPhoto.SaveJpeg(_memoryStream, _writingNewPhoto.PixelWidth, _writingNewPhoto.PixelHeight, 0, 95);

            byte[] _arrayForDB = _memoryStream.ToArray();
            _memoryStream.Close();

            var _newEmail = result.EmailAddresses.FirstOrDefault().EmailAddress;
            var _newName = result.DisplayName;
            db._contacts.InsertOnSubmit(new MyContactsList { Name = _newName, Email = _newEmail, ItemImage = _arrayForDB });

            _listContactData.Add(new ContactsModel()
                        {
                            ContactName = result.DisplayName,
                            ContactEmail = result.EmailAddresses.FirstOrDefault().EmailAddress,
                            ContactImage = ByteArraytoBitmap(_arrayForDB)
                        });
            db.SubmitChanges();
        }
    }
}

您可以将图片直接插入数据库,最多允许65535字节。如果您需要更多地考虑使用MyMub BLUB 16777215字节或长BLUBB 4294967295字节。有关更多信息,请参见

为什么它不适用于较大的图片?您是否有错误?尝试使用较大尺寸的图像时,您会收到什么错误消息?我不知道。db.SubmitChanges();在这一行中,我的项目将Sbyte数组截断为8000长度。在这种情况下,请参见