2017-04-12 79 views

回答

7

創建控制檯應用程序項目,並嘗試這個代碼

// Sample Class 
public class MyClass 
{ 
    public byte[] data; 
} 

// Main 
static void Main(string[] args) 
{ 
    MyClass cls = new MyClass(); 
    using (SqlConnection cn = new SqlConnection("CONNECTION STRING")) 
    { 
     cn.Open(); 
     using (SqlCommand cmd = new SqlCommand("insert into MyTable values (@data)", cn)) 
     { 
      cmd.Parameters.AddWithValue("@data", cls.data); 
      cmd.ExecuteNonQuery(); 
     } 
    } 
} 
+0

您正在調用的「添加」過載被標記爲過時。你應該使用'.AddWithValue(「@ data」,cls.data);'或'.Add(「@ data」,SqlDbType.VarBinary).Value = cls.data;' –

+0

@ScottChamberlain,謝謝你通知我。我更新了我的答案 – FLICKER

6

您想轉換爲VarBinary

參見以下:

SQL Server Data Type Mappings

簡單的例子(設定命令參數)如何在VARBINARY通過

byte[] data; 
command.Parameters.Add("@data", SqlDbType.VarBinary).Value = data; 

T-SQL實例

CREATE PROCEDURE YourStoredProc 
    @data varbinary(max) 
AS 
BEGIN 
    -- your code 
END 
+0

@ScottChamberlain剛剛更新的答案 –

+0

這將是很好的告訴你如何使用參數查詢過,如果OP從未使用參數之前,他可能不知道如何使用它。 –

+0

感謝您使用AddWithValue。它幫助到我。 –

相關問題