我構建sql_insert_string
在Microsoft.ApplicationBlocks.Data.SqlHelper
被用來作爲如下:插入字節數組到SQL Server
SqlHelper.ExecuteNonQuery(Transaction, CommandType.Text, sql_insert_string)
當我將鼠標懸停在SQL語句,它看起來象下面這樣:
string sql_insert_string = "Insert into images_table(image_id, image_byte_array) values ('123', System.Byte[])
其中一個插入值是如上所示的一個字節數組。該變量在字節數組中有值,比如byte [6738]。但在構建sql_insert_string
之後,它的值爲System.Byte[]
。 image_byte_array
列的類型是varbinary(max)
。該數據庫是因爲這樣的SQL Server 2008數據庫引發以下錯誤:
An object or column name is missing or empty. For SELECT INTO statements, verify each column has a name. For other statements, look for empty alias names. Aliases defined as \"\" or [] are not allowed. Change the alias to a valid name.
您的sql字符串生成器只是在您的'byte []'類型的變量上調用'ToString()'。顯示創建sql查詢字符串的方法 – Fabio
您不應該*構建* SQL語句 - 您應該使用**參數**來避免SQL注入攻擊! –
'SqlParameter'不僅可以節省您從SQL注入,此外你不會有這樣的問題,因爲所有的輸入值將被正確地「轉換」爲SqlParameters – Fabio