Использование C#, SQL Server 2016 - Попытка написать метод, чтобы обновить все записи в наборе данных - одно поле для нового значения - с помощью DataAdapter
объекта, и я получаю следующее сообщение об ошибке:Ошибка с SqlDataAdapter Update
Динамическая генерация SQL не поддерживается с помощью SelectCommand, которая не возвращает информацию о базовой таблице.
Вот мой код (метод на классе, содержащем DataSet TheDS
, SQLDataAdapter TheAdapter
и DataTable TheDataTable
):
public void updateDSField<T>(string fieldName, T newVal)
{
// Updates field in dataset
SqlCommandBuilder builder = new SqlCommandBuilder(TheAdapter);
var col = TheDataTable.Columns[fieldName];
foreach (DataRow row in TheDataTable.Rows) row[col] = newVal;
TheAdapter.UpdateCommand = builder.GetUpdateCommand();
TheAdapter.Update(TheDS);
}
Я кое-что о SqlCommandBuilder не в состоянии справиться с> 1000 строк чтения - это верно? В любом случае, каков правильный способ выполнения этой операции?
Это действительно неясно, что вы пытаетесь сделать здесь. – Rahul
@Rahul - отредактировал сообщение; надеюсь, что это немного яснее. – dashnick