I create windows desktop app with a local database this my first windows desktop app i make with C# Im not good enough in C# anyways I try to insert my data to the database but this error came out to me enter image description here I know it's caused by byteArrayToImage method how I can fix it ? it's been 2 days trying to fix it but I can't figure it out, help me.
public ProductForm()
{
InitializeComponent();
}
SqlConnection Con = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\solta\OneDrive\Documents\samarket.db.mdf;Integrated Security=True;Connect Timeout=30");
private void ProductForm_Load(object sender, EventArgs e)
{
populate();
}
private void guna2DataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
prodid.Text = prodDGV.SelectedRows[0].Cells[0].Value.ToString();
prodnam.Text = prodDGV.SelectedRows[0].Cells[1].Value.ToString();
prodqyan.Text = prodDGV.SelectedRows[0].Cells[2].Value.ToString();
prodcat.Text = prodDGV.SelectedRows[0].Cells[3].Value.ToString();
prodprix.Text = prodDGV.SelectedRows[0].Cells[4].Value.ToString();
}
public byte[] ImageToByteArray(Image img)
{
MemoryStream ms = new MemoryStream();
img.Save(ms,System.Drawing.Imaging.ImageFormat.Png);
return ms.ToArray();
}
public Image byteArrayToImage(byte[] byteArrayIn)
{
using (MemoryStream ms = new MemoryStream(byteArrayIn))
{
return Image.FromStream(ms);
}
}
private void button4_Click(object sender, EventArgs e)
{
try
{
bool isNullOrEmpty = pictur2 == null || pictur2.Image == null;
if (prodid.Text == "" || prodnam.Text == "" || prodqyan.Text == ""|| isNullOrEmpty)
{
MessageBox.Show("information manquante");
}
else
{
Con.Open();
string query = "insert into ProductTbl values (" + prodid.Text + ",'" + prodnam.Text.ToString() + "','" + prodqyan.Text + "','"+prodcat.SelectedValue.ToString()+ "','" + prodprix.Text + "',@IM'"+ImageToByteArray(pictur2.Image)+ "')";
SqlCommand cmd = new SqlCommand(query, Con);
cmd.Parameters.AddWithValue("@IM", ImageToByteArray(pictur2.Image));
cmd.ExecuteNonQuery();
MessageBox.Show("produit ajoutée avec succès");
Con.Close();
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
Con.Close();
}
}
private void button5_Click(object sender, EventArgs e)
{
try
{
bool isNullOrEmpty = pictur2 == null || pictur2.Image == null;
if (prodid.Text == "" || prodnam.Text == ""|| prodqyan.Text ==""||prodid.Text =="" || isNullOrEmpty)
{
MessageBox.Show("information manquante");
}
else
{
Con.Open();
string query = "update ProductTbl set Nom ='" + prodnam.Text + "',Quantité='" + prodqyan.Text + "',Categorie ='" + prodcat.SelectedValue.ToString() + "',Prix='" + prodprix.Text+ "',Image='" + ImageToByteArray(pictur2.Image) + "'where Id =" + prodid.Text + ";";
DataTable dt = new DataTable("ProductTbl");
SqlCommand cmd = new SqlCommand(query, Con);
cmd.ExecuteNonQuery();
MessageBox.Show("produit modifier avec succès");
Con.Close();
populate();
}
}
catch (Exception ex)
{
Con.Close();
MessageBox.Show(ex.Message);
}
}
private void populate()
{
Con.Open();
string query = "select Id,Nom,Quantité,Categorie,Prix,Image from ProductTbl ";
DataTable dt = new DataTable("ProductTbl");
SqlDataAdapter sda = new SqlDataAdapter(query, Con);
sda.Fill(dt);
prodDGV.RowTemplate.Height = 90;
prodDGV.DataSource = dt;
Con.Close();
}
private void button6_Click(object sender, EventArgs e)
{
try
{
if (prodid.Text == "")
{
MessageBox.Show("Sélectionner la produit à supprimer");
}
else
{
Con.Open();
string query = "delete from ProductTbl where Id =" + prodid.Text + "";
SqlCommand cmd = new SqlCommand(query, Con);
cmd.ExecuteNonQuery();
MessageBox.Show("produit suppremer avec succès");
Con.Close();
populate();
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
Con.Close();
}
}
private void prodcat1_SelectedIndexChanged(object sender, EventArgs e)
{
}
private void button7_Click(object sender, EventArgs e)
{
Con.Open();
string query = "select Id,Nom,Quantité,Categorie,Prix,Image from ProductTbl where Categorie ='" + prodcat1.SelectedValue.ToString() +"'";
SqlDataAdapter sda = new SqlDataAdapter(query, Con);
SqlCommandBuilder builder = new SqlCommandBuilder(sda);
var ds = new DataSet();
sda.Fill(ds);
prodDGV.DataSource = ds.Tables[0];
Con.Close();
}
private void button3_Click(object sender, EventArgs e)
{
using( OpenFileDialog ofd = new OpenFileDialog() { Filter ="Image files(*.png)|*.png",Multiselect = false })
{
if(ofd.ShowDialog() == DialogResult.OK)
{
pictur2.Image=Image.FromFile(ofd.FileName);
}
}
}
private void prodDGV_CellContentClick_1(object sender, DataGridViewCellEventArgs e)
{
prodid.Text = prodDGV.SelectedRows[0].Cells[0].Value.ToString();
prodnam.Text = prodDGV.SelectedRows[0].Cells[1].Value.ToString();
prodqyan.Text = prodDGV.SelectedRows[0].Cells[2].Value.ToString();
prodprix.Text = prodDGV.SelectedRows[0].Cells[4].Value.ToString();
DataTable dt = prodDGV.DataSource as DataTable;
DataRow row = dt.Rows[e.RowIndex];
pictur2.Image = byteArrayToImage((byte[])row["Image"]);
}
}