Encontré un método genial en YouTube hace un tiempo, crea una función que recibe la imagen y la convierte en bytes y la guarda en bytes en SQLServer DB, y cuando la recupere aparecerá en el cuadro de imagen. Aquí está el código, impleméntelo y dígame si funciona... si vota por mi respuesta, por favor:
Public Function ConvertImage(ByVal myImage As Image) As Byte()
Dim mstream As New MemoryStream
myImage.Save(mstream, System.Drawing.Imaging.ImageFormat.Jpeg)
Dim myBytes(mstream.Length - 1) As Byte
mstream.Position = 0
mstream.Read(myBytes, 0, mstream.Length)
Return myBytes
End Function
Entonces, si está guardando usando un procedimiento almacenado, simplemente pase la imagen en el cuadro de imagen como argumento, por ejemplo, pictureBoxUser.Image