如何用SQL语句插入图片?

gxlwl 2005-11-23 05:52:15
在SQL中能不能用一条语句完成图片的插入?
我从数据库中取了一条记录,其中有个字段为IMAGE格式,我想把它做成脚本,以后直接放到其他数据库中执行,请问一下这样可行么?
...全文
670 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunnystar365 2005-11-24
  • 打赏
  • 举报
回复
使用一句语句恐怕很难办到。最好是使用参数
http://blog.csdn.net/sunnystar365/archive/2005/10/10/498573.aspx
这个也是使用的参数。
zeusvenus 2005-11-23
  • 打赏
  • 举报
回复
上面的没看清楼主的需求,楼主需要:
在SQL中能不能用一条语句完成图片的插入

注意是在SQL中用一句(估计是为了以后省事),我觉得一句SQL很难不到。
天开之想 2005-11-23
  • 打赏
  • 举报
回复
Dim cn As New SqlConnection(strCn)
Dim cmd As New SqlCommand("INSERT INTO BLOBTest (BLOBData) " & _
"VALUES (@BLOBData)", cn)
Dim strBLOBFilePath As String = _
"C:\Documents and Settings\All Users\Documents" & _
"\My Pictures\Sample Pictures\winter.jpg"
Dim fsBLOBFile As New FileStream(strBLOBFilePath, _
FileMode.Open, FileAccess.Read)
Dim bytBLOBData(fsBLOBFile.Length() - 1) As Byte
fsBLOBFile.Read(bytBLOBData, 0, bytBLOBData.Length)
fsBLOBFile.Close()
Dim prm As New SqlParameter("@BLOBData", SqlDbType.VarBinary, _
bytBLOBData.Length, ParameterDirection.Input, False, _
0, 0, Nothing, DataRowVersion.Current, bytBLOBData)
cmd.Parameters.Add(prm)
cn.Open()
cmd.ExecuteNonQuery()
cn.Close()



====非常感谢你们的帮助,是你们给了我勇气,非常感谢CSDN的朋友!!!====
DreamOfEyes 2005-11-23
  • 打赏
  • 举报
回复
Try
Dim conImageDB As SqlClient.SqlConnection
Dim cmdImageDB As SqlClient.SqlCommand
Dim ms As MemoryStream
Dim prm As SqlClient.SqlParameter


Dim arrFilename() As String = Split(strFilePath, "\")
arrFilename.Reverse(arrFilename)

conImageDB = New SqlClient.SqlConnection(strCon)
conImageDB.Open()
cmdImageDB = New SqlClient.SqlCommand("Insert into Image(image,filename) Values(@image,@filename)", conImageDB)
ms = New MemoryStream
PictureBox1.Image.Save(ms, ImageFormat.Jpeg)
Dim bytPicture(ms.Length - 1) As Byte
ms.Position = 0
ms.Read(bytPicture, 0, ms.Length)
prm = New SqlClient.SqlParameter("@image", SqlDbType.VarBinary, bytPicture.Length, ParameterDirection.Input, False, 0, 0, Nothing, DataRowVersion.Current, bytPicture)
cmdImageDB.Parameters.Add(prm)

prm = New SqlClient.SqlParameter("@filename", arrFilename(0))
cmdImageDB.Parameters.Add(prm)
cmdImageDB.ExecuteNonQuery()
conImageDB.Close()
Catch ex As Exception
MessageBox.Show(ex.Message)

End Try
MessageBox.Show("写入成功", "信息提示!", MessageBoxButtons.OK, MessageBoxIcon.Information)
liushui1981 2005-11-23
  • 打赏
  • 举报
回复
可以的:
Bitmap map=new Bitmap(Server.MapPath("../200.jpg"),true);
MemoryStream stream=new MemoryStream();
map.Save(stream,ImageFormat.Jpeg);
Byte[] b=stream.ToArray();
把b放到数据库中就可以了!!
jxufewbt 2005-11-23
  • 打赏
  • 举报
回复
http://dotnet.aspx.cc/ShowDetail.aspx?id=2A5DD7C6-A45A-48AB-A2E8-342A29F17506
Eddie005 2005-11-23
  • 打赏
  • 举报
回复
用一条语句恐怕不行~
gxlwl 2005-11-23
  • 打赏
  • 举报
回复
SqlParameter paramType = new SqlParameter( "@imgtype", SqlDbType.VarChar,50 );
paramType.Value = imgtype;
command.Parameters.Add( paramType );
。。。
类似这种的方法可行,但我觉得太麻烦了

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧