如何解决无法从 Access 数据库中检索 SharpDevelop 中的图像
我试图上传然后查看图像,并将其保存在 MS Access 数据库中。
我在 Access 中将该列配置为“长文本”以保存字节图像。
这是保存我的图像的代码:
MemoryStream ms = new MemoryStream();
pb_Imagen.Image.Save(ms,ImageFormat.Jpeg);
byte[] aByte = ms.ToArray();
OleDbConnection MyConnection = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0; Data source = d:\\Archivos\\Descargas\\FastCare(1)\\Base de Datos\\Usuarios.accdb");
string comandsql = "INSERT INTO Trabajadores (Nombre,Telefono,Rut,Email,Edad,Sexo,Estudios,Descripcion,Experiencia,Niños,Adultos,Imagen) VALUES ('"+_Nombre+"','"+_Telefono+"','"+_Rut+"','"+_Email+"','"+_Edad+"','"+_Sexo+"','"+_Estudios+"','"+_Descripcion+"','"+_Experiencia+"','"+_Ninos+"','"+_Adultos+"',@imagen)";
try
{
MyConnection.open();
}
catch(Exception ex)
{
return "No se puede conectar con la Base de Datos"+ex.Message;
}
OleDbDataAdapter adapter = new OleDbDataAdapter();
OleDbCommand CommandQuery = new OleDbCommand(comandsql,MyConnection);
CommandQuery.Parameters.AddWithValue("@imagen",aByte);
try
{
adapter.InsertCommand = CommandQuery;
adapter.InsertCommand.ExecuteNonQuery();
return "Tu perfil como trabajador/a se registró correctamente";
}
catch(Exception ex)
{
return "No se pudo registrar,intente nuevamente"+ex.Message;
}
这是检索图像的代码:
OleDbCommand consulta = new OleDbCommand("SELECT * FROM Trabajadores WHERE Nombre='"+cmb_Nombre.Text+"'");
AbrirConexion();
consulta.Connection = conexion;
OleDbDataReader leer = consulta.ExecuteReader();
if (leer.HasRows)
{
leer.Read();
MemoryStream ms = new MemoryStream((byte[])leer["Imagen"]);
Bitmap bm = new Bitmap(ms);
pb_Imagen.Image = bm;
}
else
{
MessageBox.Show("No se encontraron registros");
}
当我上传图片时,我没有收到错误消息,但是当我想查看与“Nombre”相关联的图片时,我收到了这个错误:
system.invalidCastException: 无法将“System.String”类型的对象强制转换为“System.Byte []”类型。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。