1
I’m doing a product registry. I can insert the image but when I use a combobox to make all the data appear the image is cut in half.
Here is the code of the insert button:
byte[] imageBt = null;
FileStream fstream = new FileStream(this.txtPath.Text, FileMode.Open, FileAccess.Read);
BinaryReader br = new BinaryReader(fstream);
imageBt = br.ReadBytes((int)fstream.Length);
string connString = "SERVER=//; Database=//; Uid=//; Pwd=//;";
string Query = "insert cadastro.tbproduto(nomeProduto,quantProduto,precoProduto,imagemProduto) values ('" + this.txt1.Text + "','" + this.txt2.Text + "','" + this.txt3.Text + "',@IMG);";
MySqlConnection conDataBase = new MySqlConnection(connString);
MySqlCommand cmdDataBase = new MySqlCommand(Query, conDataBase);
MySqlDataReader myReader;
conDataBase.Open();
cmdDataBase.Parameters.Add(new MySqlParameter("@IMG",imageBt));
myReader = cmdDataBase.ExecuteReader();
MessageBox.Show("Salvos com sucesso", "Sucesso", MessageBoxButtons.OK, MessageBoxIcon.Information);
while (myReader.Read())
{
}
Here’s the combobox code:
string connString = "SERVER=//; Database=//; Uid=//; Pwd=//;";
string Query = "select * from cadastro.tbproduto where nomeProduto = '" + comboBox1.Text + "';";
MySqlConnection conDataBase = new MySqlConnection(connString);
MySqlCommand cmdDataBase = new MySqlCommand(Query, conDataBase);
MySqlDataReader myReader;
conDataBase.Open();
myReader = cmdDataBase.ExecuteReader();
while (myReader.Read())
{
string sName = myReader.GetString("nomeProduto");
string qName = myReader.GetString("quantProduto");
string pName = myReader.GetString("precoProduto");
txt1.Text = sName;
txt2.Text = qName;
txt3.Text = pName;
byte[] imgg = (byte[])(myReader["imagemProduto"]);
MemoryStream mstream = new MemoryStream(imgg);
pictureBox1.Image = System.Drawing.Image.FromStream(mstream);
}
Have you checked if the image is being saved in half? Take a tuple that has an image, extract base 64 and generate the image from it separately - if it’s half full, it’s saved like this.
– viniciushana