2014-10-27 50 views
-2

如果我尝试将图像转换到一个数组,然后运行更新查询和插入字符串更新变换的图像矩阵我得到的错误:UPDATE查询图像

the + operator is not defined for types 'String' and 'matrix' 1-byte size

代码:

data1 = textbox 
data2 = TextBox2 
using ms as new MemoryStream() 
DirectCast (picturebox1.image, botmap) .save (ms currentFormat) 
image = ms.toArray() 
end using 
Dim param as SqlParameter() = _ new SqlParameter() {new SqlParameter ("@ data1", _ data1), new SqlParameter ("@ data2", data2), new SqlParameter ("@ image", image)} 
mcmd.commandText = "update set table column1 = '" + data1 + "', column2 '" + data1 + "'" 
mcmd.parameters.add ("@ image", SqlDbType.varbinary, 8000) .Value = image 

我该如何解决它?

+0

我们如何才能帮助您,而无需查看代码中所做的工作? – Haris 2014-10-27 09:48:10

+0

这是什么?发布你已经有的代码来帮助人们回答你的问题。 – Joeblade 2014-10-27 09:48:25

+0

代码是:DATA1 =文本框 DATA2 = TextBox2中使用MS作为新的MemoryStream () DirectCast(picturebox1.image,botmap).save(MS currentFormat) 图像= ms.toArray()使用 昏暗PARAM 端as SqlParameter()= _ new SqlParameter(){new SqlParameter(“@ data1”,_ data1),new SqlParameter(“@ data2”,data2),new SqlParameter(“@ image”,image)} mcmd。 commandText =“update set table column1 ='”+ data1 +“',co​​lumn2'”+ data1 +“'” mcmd.parameters.add(“@ image”,SqlDbType.varbinary,8000).Value = image – 2014-10-27 09:53:14

回答

0

你不管怎么说,定义参数代码中的image变量指向下方

mcmd.parameters.add ("@image", SqlDbType.varbinary, 8000) .Value = image 

因此,而不是通过连接这也容易受到SQL注入攻击值准备你的查询;使用您已经定义的参数使用参数化查询

mcmd.commandText = "update table_name set column1 = @data1, column2 = @data2, image = @image 
+0

我试图改变字符串,但编译器返回异常类型@ date1 undefined – 2014-10-27 10:46:35

+0

你有没有创建/添加参数@ date1?我在评论中给出了一个链接。通过它并尝试相应的做法。 – Rahul 2014-10-27 10:50:32

+0

对不起,我的意思data1 – 2014-10-27 10:53:30