डब्ल्यूपीएफ में लिंक से एसक्यूएल का उपयोग कर डेटाबेस में छवियों को स्टोर/पुनर्प्राप्त करने का तरीका नीचे।
डाटाबेस
यह अलग तालिकाओं में छवियों को स्टोर करने की सिफारिश की है। तालिका जहां अपनी छवियों को स्टोर करने के लिए,
CREATE TABLE UploadedImage(
[ImageID] [int] IDENTITY(1,1) NOT NULL,
[ImageName] [varchar](100) NOT NULL,
[ImageContent] [image] NOT NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
डेटा एक्सेस परत बनाएं Linq 2 एसक्यूएल का उपयोग कर
दृश्य स्टूडियो में प्रकार LINQ to SQL Classes
(.dbml
) का एक नया आइटम जोड़ने और इसे MyDataContext
फोन की सुविधा देता है। वीएस में सर्वर एक्सप्लोरर का उपयोग करें, अपने डेटाबेस से कनेक्ट करें और .dbml
डिज़ाइन क्षेत्र में अपनी छवियों की तालिका UploadedImage
खींचें। MyDataContext
फ़ाइल Ctrl + एस सहेजें।
XAML
<TextBox x:Name="ImagePath" />
<Button x:Name="BrowseButton" Content="..." Click="BrowseButton_OnClick"/>
<Button x:Name="SaveButton" Content="Save" Click="SaveButton_OnClick"/>
<Button x:Name="LoadButton" Content="Load" Click="LoadButton_OnClick" />
<Image x:Name="MyImage" >
<Image.Source>
<BitmapImage UriSource="{Binding ElementName=ImagePath, Path=Text}" />
</Image.Source>
</Image>
कोड
private byte[] _imageBytes = null;
// Browse for an image on your computer
private void BrowseButton_OnClick(object sender, RoutedEventArgs e)
{
var dialog = new OpenFileDialog
{
CheckFileExists = true,
Multiselect = false,
Filter = "Images (*.jpg,*.png)|*.jpg;*.png|All Files(*.*)|*.*"
};
if (dialog.ShowDialog() != true) { return; }
ImagePath.Text = dialog.FileName;
MyImage.Source = new BitmapImage(new Uri(lImagePath.Text));
using (var fs = new FileStream(ImagePath.Text, FileMode.Open, FileAccess.Read))
{
_imageBytes = new byte[fs.Length];
fs.Read(imgBytes, 0, System.Convert.ToInt32(fs.Length));
}
}
// Save the selected image to your database
private void SaveButton_OnClick(object sender, RoutedEventArgs e)
{
if (!String.IsNullOrEmpty(ImagePath.Text))
{
var db = new MyDataContext();
var uploadedImg = new UploadedImage
{
ImageID = 0,
ImageContent = _imageBytes,
ImageName = ImagePath.Text
};
db.UploadedImages.InsertOnSubmit(uploadedImg);
db.SubmitChanges();
}
}
// Load an image from the database
private void LoadButton_OnClick(object sender, RoutedEventArgs e)
{
// Load 1 image from the database and display it
var db = new ImageInDatabaseDataContext();
var img = (from el in db.UploadedImages
select el).FirstOrDefault();
if (img != null)
{
// Display the loaded image
ImageFile.Source = new BitmapImage(new Uri(img.ImageName));
}
}
अच्छा सवाल के पीछे! :) –
खराब सवाल। डब्ल्यूपीएफ सामान डीबी सामान से अलग किया जाना चाहिए। – arconaut