todas las soluciones dadas no funciona .. no haga concentrarse sólo en la parte de recuperación. luk en la inserción de la imagen. Hice el mismo error. Copie una imagen del disco duro y la guardé en la base de datos. El problema radica en el comando de inserción. Luk en mi código de fallo ..:
public bool convertImage()
{
try
{
MemoryStream ms = new MemoryStream();
pictureBox1.Image.Save(ms, ImageFormat.Jpeg);
photo = new byte[ms.Length];
ms.Position = 0;
ms.Read(photo, 0, photo.Length);
return true;
}
catch
{
MessageBox.Show("image can not be converted");
return false;
}
}
public void insertImage()
{
// SqlConnection con = new SqlConnection();
try
{
cs.Close();
cs.Open();
da.UpdateCommand = new SqlCommand("UPDATE All_students SET disco = " +photo+" WHERE Reg_no = '" + Convert.ToString(textBox1.Text)+ "'", cs);
da.UpdateCommand.ExecuteNonQuery();
cs.Close();
cs.Open();
int i = da.UpdateCommand.ExecuteNonQuery();
if (i > 0)
{
MessageBox.Show("Successfully Inserted...");
}
}
catch
{
MessageBox.Show("Error in Connection");
}
cs.Close();
}
El código anterior muestra con éxito inserta ... pero podía comprender su guardar la imagen en forma de tipo de datos equivocado .. mientras que el tipo de datos debe BT "imagen" .. y por eso mejoró el código ..
public bool convertImage()
{
try
{
MemoryStream ms = new MemoryStream();
pictureBox1.Image.Save(ms, ImageFormat.Jpeg);
photo = new byte[ms.Length];
ms.Position = 0;
ms.Read(photo, 0, photo.Length);
return true;
}
catch
{
MessageBox.Show("image can not be converted");
return false;
}
}
public void insertImage()
{
// SqlConnection con = new SqlConnection();
try
{
cs.Close();
cs.Open();
//THIS WHERE THE CODE MUST BE CHANGED>>>>>>>>>>>>>>
da.UpdateCommand = new SqlCommand("UPDATE All_students SET disco = @img WHERE Reg_no = '" + Convert.ToString(textBox1.Text)+ "'", cs);
da.UpdateCommand.Parameters.Add("@img", SqlDbType.Image);//CHANGED TO IMAGE DATATYPE...
da.UpdateCommand.Parameters["@img"].Value = photo;
da.UpdateCommand.ExecuteNonQuery();
cs.Close();
cs.Open();
int i = da.UpdateCommand.ExecuteNonQuery();
if (i > 0)
{
MessageBox.Show("Successfully Inserted...");
}
}
catch
{
MessageBox.Show("Error in Connection");
}
cs.Close();
}
100% gurantee que no habrá nO VÁLIDA parámetro de error en la recuperación .... SOLUCIONADO !!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!
por favor formato su pregunta correctamente –
'ninguno de los valores en él no es mayor que 255' se expresa incorrectamente, es doble negativo, por lo que es positivo. Entonces dices que todos los valores están por encima de 255. Supongo que querías decir que son todos menos o iguales a 255, que es una barrera intrínseca de un byte. –