Below these code I'm trying to validate if my picturebox image is already exist in database. To be more precise, if user try to insert same image it will validate that "Image Already exist"
Here's the error i got :
(The parameterized query '(@Image varbinary(8000))Select COUNT(*) from employee_product wh' expects the parameter '@Image', which was not supplied.')
What i do wrong here ? or Did i forgot something ? I hope someone would be able to help me. Thank you
public partial class ADDProduct : MetroForm
{
SIMSProduct _view;
public ADDProduct(SIMSProduct _view)
{
InitializeComponent();
this._view = _view;
}
DataTable dt = new DataTable();
byte[] photobyte;
string date = DateTime.Now.ToString("MMMM-dd-yyyy");
public void ValidateImage(byte[] image)
{
using (var con = SQLConnection.GetConnection())
{
using (var select = new SqlCommand("Select COUNT(*) from employee_product where Image= @Image", con))
{
select.Parameters.Add("@Image", SqlDbType.VarBinary).Value = photobyte;
using (var sda = new SqlDataAdapter(select))
{
int count = (int)select.ExecuteScalar();
if (count > 0)
{
lbl_image.Show();
}
}
}
}
}
private void btn_add_Click(object sender, EventArgs e)
{
_view.ID = txt_id.Text;
using (var con = SQLConnection.GetConnection())
{
if (string.IsNullOrEmpty(cbox_supplier.Text) || string.IsNullOrEmpty(txt_code.Text) || string.IsNullOrEmpty(txt_item.Text) || string.IsNullOrEmpty(txt_quantity.Text) || string.IsNullOrEmpty(txt_cost.Text) || pictureBox1.Image == null )
{
CustomNotifcation.Show("Please input the required fields", CustomNotifcation.AlertType.warning);
}
else
{
ValidateItem.IsValidItem(txt_code, lbl_code);
ValidateImage(photobyte);
if (lbl_code.Visible == true)
{
CustomNotifcation.Show("CODE ALREADY EXIST", CustomNotifcation.AlertType.error);
lbl_code.Visible = false;
}
else if (lbl_image.Visible == true)
{
CustomNotifcation.Show("IMAGE ALREADY EXIST", CustomNotifcation.AlertType.error);
lbl_image.Visible = false;
}
else
{
using (var select = new SqlCommand("Insert into employee_product (Image, ID, Supplier, Codeitem, Itemdescription, Date, Quantity, Unitcost) Values (@Image,@ID, @Supplier, @Codeitem, @Itemdescription, @Date, @Quantity, @Unitcost)", con))
{
var ms = new MemoryStream();
pictureBox1.Image.Save(ms, pictureBox1.Image.RawFormat);
photobyte = ms.GetBuffer();
select.Parameters.Add("@Image", SqlDbType.VarBinary).Value = photobyte;
select.Parameters.Add("@ID", SqlDbType.VarChar).Value = txt_id.Text;
select.Parameters.Add("@Supplier", SqlDbType.VarChar).Value = cbox_supplier.Text;
select.Parameters.Add("@Codeitem", SqlDbType.VarChar).Value = txt_code.Text.Trim();
select.Parameters.Add("@Itemdescription", SqlDbType.VarChar).Value = txt_item.Text.Trim();
select.Parameters.Add("@Date", SqlDbType.VarChar).Value = date;
select.Parameters.Add("@Quantity", SqlDbType.Int).Value = txt_quantity.Text.Trim();
select.Parameters.Add("@Unitcost", SqlDbType.Int).Value = txt_cost.Text.Trim();
select.ExecuteNonQuery();
CustomMessage.Show("Message: Item successfully added!", CustomMessage.Messagetype.Success);
pictureBox1.Image = null;
cbox_supplier.Items.Clear();
txt_code.Clear();
txt_item.Clear();
txt_quantity.Clear();
txt_cost.Clear();
_view.btn_update.Enabled = false;
_view.AddingProduct();
this.Close();
}
}
}
}
}
private void pictureBox1_Click(object sender, EventArgs e)
{
using (OpenFileDialog ofd = new OpenFileDialog())
{
ofd.Filter = "Image Files (*.jpg;*.jpeg;.*.png;)|*.jpg;*.jpeg;.*.png;";
ofd.FilterIndex = 1;
ofd.Multiselect = false;
if (ofd.ShowDialog() == DialogResult.OK)
{
pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
pictureBox1.Image = Image.FromFile(ofd.FileName);
}
}
}
}