我需要使用insert语句将图像插入到filemaker容器中,虽然odbc文档看起来很模糊,但没有明确的示例,我试图让它在一个简单的级别上工作,如下所示:
sqlstr的文本可视化工具中显示的命令行:
INSERT INTO Answer ("UserID","RECNO","RECTYPE","RECSEQ",PutAs(NCICImage, 'JPEG'))
VALUES('hcd','0','0','1',?)
这是我写记录的功能:
static void C2Search_WriteRecord(string sqlstr, Image img = null)
{
OdbcCommand cmd = new OdbcCommand(sqlstr);
if (img != null)
{
cmd.Parameters.AddWithValue("?", OdbcType.Image).Value = img;
}
cmd.Connection = connData;
try
{
cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
logWriteLine(DateTime.Now.ToString() + ": " + ex.Message);
}
}
当我使用上面的sql语句执行我的程序时,我得到以下消息,我很困惑:
从对象类型System.Drawing.Bitmap到已知的托管提供程序本机类型不存在映射。
如何根据需要进行此项工作?
答案 0 :(得分:0)
尝试重写SQL语句(我假设NCICImage
是目标字段):
INSERT INTO Answer ("UserID","RECNO","RECTYPE","RECSEQ", "NCICImage")
VALUES('hcd', '0', '0', '1', PutAs(?, 'JPEG'))
然后绑定图像并确保它是真正的JPEG字节流。