以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]Insert Into怎么插入图片到二进制列  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=112710)

--  作者:zwjfx
--  发布时间:2018/1/1 15:20:00
--  [求助]Insert Into怎么插入图片到二进制列
SQLInsertFile可以向已经保存的行插入图片

请问:Insert Into的时候要怎么插入图片呢,不是记录路径,是插入文件到二进制列

--  作者:有点甜
--  发布时间:2018/1/1 16:13:00
--  

参考代码

 

Dim imgStream As New IO.MemoryStream
Dim b As New Bitmap("d:\\test.jpg")
b.Save(imgStream, System.Drawing.Imaging.ImageFormat.Jpeg)
Dim imageByte As Byte() = imgStream.GetBuffer
imgStream.Dispose()
Dim ImageString As String = BitConverter.ToString(imageByte).Replace("-", "")  \' SQLCommand 不能直接Insert 二进制,只能拼接SQL语句,所以这里把二进制变成字符
Dim cmd As SQLCommand = new SQLCommand()
cmd.ConnectionName = "数据源名"
cmd.CommandText = "update " & dr.datatable.name & " set 示意图1 = 0x" + ImageString + " where _Identify = " & dr("_Identify")
cmd.ExecuteNonQuery()


--  作者:zwjfx
--  发布时间:2018/1/1 21:58:00
--  
甜版,好像有点没表述清楚,是向SQL添加数据,用Insert Into语句,这个时候好像不清楚_Identify是多少
    Dim cmd As New SQLCommand
    cmd.C
    cmd.CommandText = "Insert Into ts (zs,zz,tjly,tu) Values(\'a\',\'b\',\'c\',\'\')"
    cmd.ExecuteScalar()

tu是二进制列

或者是,我保存以后,怎么才能获取刚才保存那行的_Identify?

--  作者:有点甜
--  发布时间:2018/1/1 23:35:00
--  

你要新增一行数据还是修改原来的数据?如果你已经新增了一行,修改原来的数据,就用update。

 

如果是新增一行新的数据,就用insert into 如

 

cmd.CommandText = "insert into 表名 (第一列,第二列,图片) values (\'123\', \'abc\', 0x" + ImageString + ")"


--  作者:zwjfx
--  发布时间:2018/1/2 15:54:00
--  
明白了,感谢甜版