Здравствуйте!
Имеется приложение и сервер, оба написаны на языке C#. На форме есть picturebox и кнопка, при нажатии на которую формиуется sql-запрос с SELECT, этот запрос отправляется серверу, далее сервер вытаскивает из базы данных картинку как массив байт, отправляет этот массив байт обратно приложению, и после того как приложение получит этот массив байт, надо отобразить это массив байт в картинку в picturebox.
В этом куске кода происходит пердача запроса серверу на взятие картинки:
stream = Client.GetStream();
string Message3 = $"SELECT Image FROM users WHERE Login = '{LoginField.Text}'";
byte[] command3 = Encoding.UTF8.GetBytes(Message3);
stream.Write(command3, 0, command3.Length);
В этом куске кода происходит взятие картинки сервером после получения запроса и отправка ее обратно:
byte[] cmd = new byte[64];
StringBuilder builder = new StringBuilder();
int bytes = 0;
do
{
bytes = stream.Read(cmd, 0, cmd.Length);
builder.Append(Encoding.UTF8.GetString(cmd, 0, bytes));
}
while (stream.DataAvailable);
string message = builder.ToString();
Console.WriteLine(message);
stream.Flush();
if (message.Contains("SELECT"))
{
if (message.Contains("Image"))
{
SqliteConnection connect = new SqliteConnection("Data source = accounts.db");
connect.Open();
SqliteCommand command = new SqliteCommand(message, connect);
command.ExecuteNonQuery();
SqliteDataReader Reader = command.ExecuteReader();
while (Reader.Read())
{
if ((string)Reader["Image"] == "")
{
string foto = null;
byte[] image = Encoding.UTF8.GetBytes(foto);
Console.WriteLine(image);
stream.Write(image, 0, image.Length);
}
else
{
string foto = (string)Reader["Image"];
byte[] image = Convert.FromBase64String(foto);
Console.WriteLine(image);
stream.Write(image, 0, image.Length);
}
}
}
В этом куске кода происходит получение отправленной картинки и ее отображение в picturebox:
byte[] GetData3 = new byte[128];
MemoryStream memoryStream = new MemoryStream(GetData3);
pictureBox1.Image = Image.FromStream(memoryStream);
И вот в этой строчке
pictureBox1.Image = Image.FromStream(memoryStream);
вылазит исключение:
System.Argument.Expection: Недопустимый параметр.
По какой причине таоке исключение могло появиться и как его исправить?