I am trying to save an image to my sql database using picturebox and save button on c# windows form application. this are the codes I used to save an image:
private void btnsave_Click(object sender, EventArgs e)
{
MemoryStream ms = new MemoryStream();
pictureBox2.Image.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
Byte[] picarray = ms.ToArray();
String picbase64 = Convert.ToBase64String(picarray);
SqlConnection con = new SqlConnection("Data Source=LAPTOP-EUNPD14B;Initial Catalog=db;Integrated Security=True");
SqlCommand cmd = new SqlCommand();
con.Open();
cmd.CommandType = CommandType.Text;
cmd.CommandText = @"INSERT INTO tblreport([entrynum],[reportdate],[reporttime],[vicfirstname],[viclastname],[vicmidname], [vicage],[vicgender],[vicaddress],[incident],[time],[date],[place],[casefiled],[susfirstname],[suslastname],[susmidname],[susage],[susgender],[susaddress],[suspic]) VALUES(@value1,@value2,@value3,@value4,@value5,@value6,@value7,@value8,@value9,@value10,@value11,@value12,@value13,@value14,@value15,@value16,@value17,@value18,@value19,@value20,@value21)";
cmd.Parameters.AddWithValue("@value1", entryno.Text);
cmd.Parameters.AddWithValue("@value2", dtreport.Text);
cmd.Parameters.AddWithValue("@value3", timereport.Text);
cmd.Parameters.AddWithValue("@value4", txtcomfirst.Text);
cmd.Parameters.AddWithValue("@value5", txtcomlast.Text);
cmd.Parameters.AddWithValue("@value6", txtcommid.Text);
cmd.Parameters.AddWithValue("@value7", txtcomage.Text);
cmd.Parameters.AddWithValue("@value8", cbocomgen.Text);
cmd.Parameters.AddWithValue("@value9", txtcomaddress.Text);
cmd.Parameters.AddWithValue("@value10", txtincident.Text);
cmd.Parameters.AddWithValue("@value11", timeincident.Text);
cmd.Parameters.AddWithValue("@value12", dtincident.Text);
cmd.Parameters.AddWithValue("@value13", txtincidentplace.Text);
cmd.Parameters.AddWithValue("@value14", txtcase.Text);
cmd.Parameters.AddWithValue("@value15", susfirst.Text);
cmd.Parameters.AddWithValue("@value16", suslast.Text);
cmd.Parameters.AddWithValue("@value17", susmid.Text);
cmd.Parameters.AddWithValue("@value18", susage.Text);
cmd.Parameters.AddWithValue("@value19", cbosusgender.Text);
cmd.Parameters.AddWithValue("@value20", susadd.Text);
cmd.Parameters.AddWithValue("@value21", picbase64);
cmd.Connection = con;
cmd.ExecuteNonQuery();
MessageBox.Show("Report Saved");
con.Close();
}
the codes worked when the data type that I used was Varchar but the picture won't show on the datagridview so I changed the datatype to varbinary after that I had an error.
and this is the error:
An unhandled exception of type 'System.Data.SqlClient.SqlException' occurred in System.Data.dll
Additional information: Implicit conversion from data type nvarchar(max) to varbinary(max) is not allowed. Use the CONVERT function to run this query.
Please help me! Thank you!