我写了一个SQL UPDATE语句来将文档文件和照片存储更新为数据库中的varbinary(max)。起初我得到一个错误说 不允许从数据类型varchar到varbinary(max)的隐式转换。使用CONVERT函数运行此查询
所以我改变了代码,就这样做了。
try {
//SET Varbinary_Col = CAST(Varbinary_Content as VARBINARY)
query = "UPDATE tourClient SET DocumentFile= CONVERT(varbinary(max),'"+docFile+"'),Photo= CONVERT(varbinary(max),'"+person_image+"') WHERE Name= '" + combo_client.getSelectedItem() + "' ";
PreparedStatement stm = db.getconn().prepareStatement(query);
int val = stm.executeUpdate();
if (val > 0) {
JOptionPane.showMessageDialog(null, "Uploaded successfully!!!");
rs.next();
}
db.getconn().close();
} catch (Exception e) {
System.out.println(e);
}
在netbeans中运行上述查询后,我收到Joption消息说成功上传。我在netbeans中有另一个jframe,它有一个查询SELECTS所有文档文件,Images并在jtable中显示它。当我单击jtable中的一行时,图像显示在标签中并且文档被打开但是当我尝试打开它时,它表示文件已损坏,而且对于图像,它不显示我上传的png。
我是否正确撰写了声明?我还有什么需要改变吗?