Я хочу запустить свою хранимую процедуру обновления, чтобы обновить только два столбца в таблице (в этой таблице также есть много других столбцов).
В настоящее время я реализовал следующее -
foreach (Object obj in customCollection)
{
string[] updatedValues = GetUpdatedValues(obj.Property1);
using (SqlConnection sqlConnection = new SqlConnection(connString))
{
sqlConnection.Open();
SqlParameter[] sqlParams = new SqlParameter[2];
sqlParams[0] = new SqlParameter("@column1", SqlDbType.Float) { Value = updatedValues[0]};
sqlParams[1] = new SqlParameter("@column2", SqlDbType.Float) { Value = updatedValues[1] };
using (SqlCommand command = new SqlCommand("upUpdateProcedure", sqlConnection))
{
command.CommandType = CommandType.StoredProcedure;
command.Parameters.AddRange(sqlParams);
DatabaseHelper.ExecuteNonQuery(command);
}
}
}
Итак, как вы видите выше, код вызывает базу данных для каждого объекта в коллекции.
Я просмотрел несколько ссылок для «пакетного обновления с C # на SQL Server», но большинство из этих ссылок предлагали загрузить таблицу внутри кода C #, обновить строки таблицы и затем вызвать DataAdapter.Update ().
Тем не менее, просто интересно, есть ли другой известный способ обработки этого сценария по-другому - я имею в виду, что я не хочу загружать всю таблицу в память, поскольку она также содержит много других данных столбцов.
Пожалуйста, руководство.