Вы не сможете заставить конструктор сгенерировать оператор вставки (или адаптер данных сгенерирует его во время выполнения) и выборочно выбирать поля для установки.
Хотя DataSet имеет мониторинг изменений, он находится на уровне строк, а не на уровне столбцов. По этой причине вам придется отслеживать, какие столбцы установлены при внесении изменений.
Если столбцы, которые будут изменены, согласованы, то я бы вручную создал запрос в конструкторе, чтобы вставить только эти значения.
В противном случае вам придется самостоятельно отслеживать, какие столбцы меняются. Если таблица в базе данных не имеет столбцов, которые допускают нулевые значения, вы можете разрешить столбцам в наборе данных иметь нулевые значения и установить для них значения по умолчанию. Затем, если столбец не имеет нулевого значения, вы знаете, что оно было изменено.
Если он допускает нулевое значение, вам нужно будет сохранить внешний от DataSet флаг, указывающий, было ли задано значение для столбца (это будет сделано при изменении столбца).
ПРИМЕЧАНИЕ. Когда я говорю, что в DataSets нет мониторинга изменений, я имею в виду, что вызов GetChanges для DataSet / DataTable не скажет, какой столбец изменился, какие строки. Вызов GetChanges - это то, что DataAdapter будет использовать для определения того, что отправлять на сервер, но он не будет знать, какие столбцы отправлять, поэтому он отправляет их все.