It seems like your code is working fine.
Your Problem is that you can't uniquely identify your row, so every row with the transactee_id of 1245 is updated, to get this working as you expect you need a unique identifier (ID) that only describes one row.
"UPDATE [transact].[transaction_item] SET Status = 'Ready' Where transactee_id=" + key.ToString()
Another thing to mention is how you bring together your UPDATE string and your parameter.
The way you do it can cause multiple accidental errors or even injection!
The best way would be to add your 'key' as a Parameter (cmd.Parameters.AddWithValue();)