微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法从 Access 数据库中检索 SharpDevelop 中的图像

如何解决无法从 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 举报,一经查实,本站将立刻删除。