我想通過使用存儲過程來存儲二進制數據。存儲過程有三個參數。最後一個參數將包含二進制數據。但是,當我運行代碼它給SQL異常如何處理SQL異常必須傳遞參數編號'x'?
必須通過參數號3和後續的參數爲「@name = 值」。在使用'@name = value'形式後,所有後續的 參數必須以'@name = value'的形式傳遞。
SqlCommand cmd = new SqlCommand("EXEC myProc @param1 = 8, @param2= '5.png', @FileSignature");
using (SqlConnection conn = new SqlConnection(myConnString))
{
cmd.Connection = conn;
if (FileSignature == null) //FileSignature is byte[]
{
cmd.Parameters.Add("@FileSignature", SqlDbType.VarBinary, -1);
cmd.Parameters["@FileSignature"].Value = System.DBNull.Value;
}
else
cmd.Parameters.AddWithValue("@FileSignature", FileSignature); //FileSignature is byte[]
int iReturn = cmd.ExecuteNonQuery();
}
使用相同的方法傳遞所有參數。不要將前兩個作爲一對放入SQL命令文本中,然後將第三個添加到集合中。 –