以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]动态插入图片代码错误 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=118660) |
-- 作者:倪远歌1 -- 发布时间:2018/5/8 14:57:00 -- [求助]动态插入图片代码错误 目标是从指定文件夹下打开当前行、产品编码列对应的文件夹, 选中图片后保存“照片”列中,已经设置了“照片”列的动态保存目录,在attachment\\photo文件夹下 做了一个按钮,现代码如下: If CurrentTable.Current("产品编码") IsNot Nothing Then Dim dlg As New OpenFileDialog dlg.MultiSelect = True dlg.InitialDirectory ="E:\\图片库\\" & CurrentTable.Current("产品编码") If dlg.ShowDialog = DialogResult.OK Then Dim dr As DataRow = Tables("数据库").Current.DataRow Dim fl As String = dlg.FileName dr.SQLInsertFile("照片",fl) End If Else MessageBox.Show(CurrentTable.Current("产品编码")& "照片未找到!", "提示") End If 点击按钮后发现 如果产品编码有对应的文件夹则能打开“E:\\图片库”下对应的产品文件夹 如果产品编码为空,或者在“E:\\图片库”下没有对应的产品编码文件夹,依然可以打开其他产品编码对应的文件夹,没有提示照片未找到 而且图片插入不成功。 求大神指点 |
-- 作者:有点蓝 -- 发布时间:2018/5/8 15:23:00 -- OpenFileDialog不会有任何提示的,如果不存在就打开默认的目录 如果要判断文件夹是否存在,使用:http://www.foxtable.com/webhelp/scr/0334.htm 判断单元格是否为空,尽量这样判断 If CurrentTable.Current.isnull("产品编码") = false Then
|
-- 作者:倪远歌1 -- 发布时间:2018/5/8 17:22:00 -- Dim dlg As New OpenFileDialog dlg.MultiSelect = True dlg.InitialDirectory ="E:\\图片库\\" & CurrentTable.Current("产品编码") If FileSys.DirectoryExists(dlg.InitialDirectory) AndAlso dlg.ShowDialog = DialogResult.OK Then Dim dr As DataRow = Tables("数据库").Current.DataRow Dim fs As String = ProjectPath & "attachment\\photo\\" & CurrentTable.Current("产品编码") Dim fn As String = dlg.FileName If FileSys.DirectoryExists(fs) Then For Each f As String In dlg.FileNames FileSys.CopyFile(f, fs & FileSys.GetName(f), True) dr.SQLInsertFile("照片",fs) Next Else FileSys.CreateDirectory(fs) For Each f As String In dlg.FileNames FileSys.CopyFile(f, fs & FileSys.GetName(f), True) dr.SQLInsertFile("照片",fs) Next End If End If 还是不行,越看越不懂了
|
-- 作者:有点甜 -- 发布时间:2018/5/8 18:59:00 -- 执行下面代码,能否拷贝文件到photo文件夹?
你图片列,是二进制列,还是字符列?
Dim dlg As New OpenFileDialog |
-- 作者:倪远歌1 -- 发布时间:2018/5/9 9:00:00 -- 是字符列,文件并没有复制到photo文件夹下, 提示“未将对象引用设置到对象的实例”
|
-- 作者:有点甜 -- 发布时间:2018/5/9 9:06:00 -- 这样试试
Dim dlg As New OpenFileDialog |
-- 作者:倪远歌1 -- 发布时间:2018/5/9 11:16:00 -- 刚刚少打了一个& "\\" & 这样 FileSys.CopyFile(f, fs & "\\" & FileSys.GetName(f), True) 可以把照片顺利复制到指定文件夹, 但是因为“照片”列不是二进制列所以照片插入不成功。 除了SQLInsertFile 还有其他方法向照片列插入照片吗? |
-- 作者:有点甜 -- 发布时间:2018/5/9 11:20:00 -- dr.SQLInsertFile("照片",fs)
改成
dr.lines("照片") = dr.lines("照片").Add("photo\\" & t.Current("产品编码") & "\\" & FileSys.GetName(f))
|
-- 作者:倪远歌1 -- 发布时间:2018/5/9 13:58:00 -- 提示错误,表达式不产生任何值? ???
|
-- 作者:有点甜 -- 发布时间:2018/5/9 14:34:00 -- Dim ls = dr.lines("照片") ls.Add("photo\\" & t.Current("产品编码") & "\\" & FileSys.GetName(f)) dr.lines("照片") = ls |