0

我编写了一个 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,它有一个查询,可以选择所有文档文件、图像并将其显示在 jtable 中。当我单击 jtable 中的一行时,图像显示在标签中并打开了文档,但是当我尝试打开它时,它说文件已损坏,并且对于图像,它不显示我上传的 png。

我是否正确地写了声明?我有什么需要改变的吗?

4

0 回答 0