C# 检索图像时参数无效
当我检索一个大小超过250kb的图像时,它总是会得到一个错误“parameter argument invalid”有两个选项可以解决这个问题:C# 检索图像时参数无效,c#,mysql,c#-4.0,C#,Mysql,C# 4.0,当我检索一个大小超过250kb的图像时,它总是会得到一个错误“parameter argument invalid”有两个选项可以解决这个问题: 使用图像转换器: 或者尝试先将二进制数据加载到内存流中: 哪一行代码导致了错误?您应该在新的MySqlCommand中使用绑定参数而不是文本插值,以避免SQL注入。另外,在Image.FromStream(ms)处命名列,而不是使用*@RobertHarvey line error;短语“参数参数无效”不适用于谷歌。请提供您收到的错误消息的确切措辞。@
哪一行代码导致了错误?您应该在新的MySqlCommand中使用绑定参数而不是文本插值,以避免SQL注入。另外,在Image.FromStream(ms)处命名列,而不是使用*@RobertHarvey line error;短语“参数参数无效”不适用于谷歌。请提供您收到的错误消息的确切措辞。@Ferdy,您确认了图像数据没有损坏吗。当您传递的流没有有效的图像格式时,Image.FromStream方法返回ArgumentException。
string nama = dgGambar1.Rows[e.RowIndex].Cells["nama_gambar"].FormattedValue.ToString();
btnTambahDataBarang.Enabled = false;
koneksi.Open();
MySqlCommand command = new MySqlCommand("SELECT * FROM and_bwi_gambar WHERE nama_gambar = '" + nama + "'", koneksi);
MySqlDataReader rd;
rd = command.ExecuteReader();
while (rd.Read())
{
txtGambar1.Text = rd.GetValue(2).ToString();
byte[] img = (byte[])rd.GetValue(3);
MemoryStream ms = new MemoryStream(img);
pbGambar1.Image = Image.FromStream(ms);
}
koneksi.Close();
byte[] buffer = (byte[])rd.GetValue(3);
using(var memStream = new MemoryStream(buffer))
{
var ic = new System.Drawing.ImageConverter();
pbGambar1.Image = (System.Drawing.Image)ic.ConvertFrom(stream.ReadAllBytes());
}
byte[] buffer = (byte[])rd.GetValue(3);
using(var memStream = new MemoryStream(buffer))
{
memStream.Position = 0;
pbGambar1.Image = System.Drawing.Image.FromStream(memStream, false);
}
}