Это, вероятно, самое чистое решение, где память фактически очищается должным образом ,
using (var conn = new SqlConnection(connectionString))
{
conn.Open();
using (var comm = new SqlCommand(queryString, conn)
{
using (var ms = new MemoryStream((byte[])comm.ExecuteScalar()))
{
pictureBox1.Image = Image.FromStream(ms);
}
}
}
Также можно сделать это, если вы хотите указать столбец или использовать другие столбцы в строке.
using (var conn = new SqlConnection(connectionString))
{
conn.Open();
using (var comm = new SqlCommand(queryString, conn)
{
using (var reader = new comm.ExecuteReader())
{
if (reader.Read())
{
using (var ms = new MemoryStream((byte[])reader["Column"]))
{
pictureBox1.Image = Image.FromStream(ms);
}
}
}
}
}
У меня есть ошибка «Параметр не действителен» –
где вы получаете эту ошибку? Вы пытались отлаживать? –
Почему вы передаете «true, true» методу, а не только байту []? Я не думаю, что эта перегрузка существует. – CRice