Xamrin android form upload images to sql server using FilePicker.
I have used FilePicker to pick the image file and now I have to store my file into a database...but I don't know how to implement that, I watched videos in which they used OpenFileDialog.but it does not support in xamarin with C#.
The part which I have commented on are not working I have tried it ...please help
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xamarin.Essentials;
using Xamarin.Forms;
using System.Data.SqlClient;
using Xamarin.Forms.Xaml;
using System.Data;
using System.IO;
using System.Drawing.Imaging;
using System.Drawing;
namespace AntiCrime.Views
{
[XamlCompilation(XamlCompilationOptions.Compile)]
public partial class Missing : ContentPage
{
SqlConnection sqlConnection;
public Missing()
{
InitializeComponent();
MainPage main = new MainPage();
string sqlconn = main.Sqlconn;
sqlConnection = new SqlConnection(sqlconn);
}
//string fileName;
//string folderPath = Environment.GetFolderPath(Environment.SpecialFolder.Personal);
private async void Button_Clicked(object sender, EventArgs e)
{
//OpenFileDialog openFileDialog = new OpenFileDialog();
var pickImage = await FilePicker.PickAsync(new PickOptions()
{
FileTypes = FilePickerFileType.Images,
PickerTitle = "Pick an Image"
});
if (pickImage != null)
{
var stream = await pickImage.OpenReadAsync();
ImgFile.Source = ImageSource.FromStream(() => stream);
//fileName.Text = pickImage.FileName;
//string imgfile = Path.GetFileName(pickImage.FullPath);
string fileName = pickImage.FileName;
//string folderPath = Server.MapPath("~/Images");
}
}
//public void StoreImage(string filename)
//{
// if (File.Exists(filename))
// {
// Count++;
// string filenames = "image" + Count.ToString() + ".jpg";
// filename = Path.Combine(folderPath, filenames);
// }
// else
// {
// filename = Path.Combine(folderPath, "image.jpg");
// }
// var img = UIImage.FromFile(filename);
// NSData image = img.AsJPEG();
// NSError err = null;
// image.Save(fileName, false, out err);
// lblPath.Text = "File Path:" + fileName;
// imgProfile.Image = UIImage.FromFile(fileName);
//}
private async void Button_Clicked_1(object sender, EventArgs e)
{
try
{
string gender = string.Empty;
if (rbMale.IsChecked)
{
gender = "M";
}
else
{
gender = "F";
}
sqlConnection.Open();
using (SqlCommand command = new SqlCommand("INSERT INTO dbo.MissReg VALUES( @Name, @Age, @Gender, @Last_Seen, @Details, @Image)", sqlConnection))
{
command.Parameters.Add(new SqlParameter("Name", txtName.Text));
command.Parameters.Add(new SqlParameter("Age", txtAge.Text));
command.Parameters.Add(new SqlParameter("Gender", gender));
command.Parameters.Add(new SqlParameter("Last_Seen", txtLastSeen.Text));
command.Parameters.Add(new SqlParameter("Details", txtDetails.Text));
command.Parameters.Add(new SqlParameter("Image", ImgFile));
command.ExecuteNonQuery();
}
sqlConnection.Close();
var result = await this.DisplayAlert("congratulations", "user registration successfull", "yes", "cancel");
}
catch (Exception ex)
{
await App.Current.MainPage.DisplayAlert("Alert", ex.Message, "Ok");
throw;
}
finally
{
sqlConnection.Close();
}
}
}
}