Существует два способа доступа к свойствам объекта:
something.bar
something['bar']
Значение между скобками может быть любым выражением. Поэтому, если имя свойства хранится в переменной, вы должны использовать нотацию в виде скобок:
var foo = 'bar';
something[foo];
// both x = something[foo] and something[foo] = x work as expected
Никогда не используйте конкатенацию строк для построения команд SQL, но всегда используйте параметризованный запрос, чтобы избежать SQL-инъекций.
Попробуйте:
Измените ваш запрос на что-то вроде этого:
"UPDATE [Payments] SET [Position] = ?, [PaymentRecipient] = ?, [PaymentFor] = ?, " & _
"[Amount] = ?, [PayedAmount] = ? & _
" WHERE [AssignedOfficer] = ?"
, а затем добавьте параметры:
cmdUpdate.Parameters.AddWithValue("@p1", TextBox2.Text)
cmdUpdate.Parameters.AddWithValue("@p2", TextBox3.Text)
cmdUpdate.Parameters.AddWithValue("@p3", TextBox4.Text)
cmdUpdate.Parameters.AddWithValue("@p4", TextBox5.Text)
cmdUpdate.Parameters.AddWithValue("@p5", TextBox6.Text)
cmdUpdate.Parameters.AddWithValue("@p6", TextBox1.Text)
cmdUpdate.ExecuteNonQuery()