Нельзя указать параметр для имени столбца - его необходимо объединить так же, как для имени таблицы.
Это:
"DELETE FROM " + Settings.DataSource + " WHERE @keycolumn=@keyuid"
Должен измениться на:
"DELETE FROM " + Settings.DataSource + " WHERE " + Settings.KeyColumn + " =@keyuid"
Хотя я, вероятно, написал бы это как:
string delNonQuery = string.Format("DELETE FROM {0} WHERE {1} = @keyuid",
Settings.DataSource,
Settings.KeyColumn);
Для полноты картины упомяну, что это открыто для SQL-инъекции . Вы должны убедиться, что ваши значения Settings
чистые.