Foxtable(狐表)用户栏目专家坐堂 → SQLInsertFile问题


  共有2418人关注过本帖树形打印复制链接

主题:SQLInsertFile问题

帅哥哟,离线,有人找我吗?
askbang
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:105 积分:1140 威望:0 精华:0 注册:2015/1/12 0:29:00
SQLInsertFile问题  发帖心情 Post By:2015/12/3 16:13:00 [显示全部帖子]

对MSSQL添加行后,执行了 SQLInsertFile 添加二进制图片,系统总是提示对象名 "xxx" 无效,其中 xxx是数据源名称,可是查看数据表,除了图片没插入成功,其他数据已正常插入了,我也检查了图片列的设置确实是图片列, 不知为何?

 

        '以上代码略

        Dim cr As Row = tb.AddNew()
        cr("车牌号") = e.Form.Controls("car_code").Text
        cr("车辆类型") = e.Form.Controls("car_cat").Text
        
        cr.DataRow.Save()

 

        Dim dlg As New OpenFileDialog
        If dlg.ShowDialog = DialogResult.OK Then
            cr.DataRow.SQLInsertFile("图片", dlg.FileName) '插入文件
        End If


 回到顶部
帅哥哟,离线,有人找我吗?
askbang
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:105 积分:1140 威望:0 精华:0 注册:2015/1/12 0:29:00
  发帖心情 Post By:2015/12/3 16:39:00 [显示全部帖子]

绝对是二进制列。刚才我用了另一种方法测试,发现数据表如果是fill方法加载的也是一样,只有先加载外部表,再插入就不会报错。


 回到顶部
帅哥哟,离线,有人找我吗?
askbang
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:105 积分:1140 威望:0 精华:0 注册:2015/1/12 0:29:00
  发帖心情 Post By:2015/12/3 17:08:00 [显示全部帖子]

用你的方法,为何ImageString为空呢?

 

        Dim dlg As New OpenFileDialog
        dlg.Filter = "图形文件|*.bmp;*.jpg;*.gif;*.png"
        If dlg.ShowDialog = DialogResult.OK Then
            Dim fs As New IO.FileStream(dlg.FileName, IO.FileMode.Open , IO.FileAccess.Read) '用文件流打开图片
            Dim br As New IO.BinaryReader(fs) '根据文件流,声明一个二进制阅读器
            Dim ImageByte() As Byte = br.ReadBytes(fs.Length) '阅读器读取文件流,并将独到的二进制放入数组ImageByte中,
            Dim ImageString As String = BitConverter.ToString(ImageByte).Replace("-", "")  ' SQLCommand 不能直接Insert 二进制,只能拼接SQL语句,所以这里把二进制变成字符
            msgbox(ImageString) '此处为何为空呢?
        End If


 回到顶部
帅哥哟,离线,有人找我吗?
askbang
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:105 积分:1140 威望:0 精华:0 注册:2015/1/12 0:29:00
  发帖心情 Post By:2015/12/3 17:28:00 [显示全部帖子]

此法执行时内存占用很高啊,且速度慢,觉得不可取,是否还有其他更好的办法?


 回到顶部