2014-10-27 79 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