Быстрое обновление записей

Тема в разделе ".NET", создана пользователем NikSoft, 3 сен 2006.

  1. NikSoft

    NikSoft Гость

    Пусть мы изменили fieldfCorrected поле порядка 200 000 записей в DataSet обьекте и нам надо сохранить эти записи в базе данных. Следующий код решает задачу.

    Код (Text):
    public void UpdateManpartnoFields(DataSet ds, string dataTableName)
    {
    Connection.Open();

    SqlDataAdapter dataAdpater = new SqlDataAdapter();
    dataAdpater.SelectCommand = new SqlCommand("SELECT PrimaryKey, fieldCorrected FROM " + dataTableName, Connection);
    SqlCommandBuilder sqlCommandBuilder = new SqlCommandBuilder(dataAdpater);
    dataAdpater.UpdateBatchSize = 0;

    try
    {
    dataAdpater.Update(ds, dataTableName);
    }
    catch (SqlException ex)
    {
    Debug.WriteLine("An exception was encountered " + ex.Message + ex.StackTrace + ex.GetType());
    }
    catch (Exception e)
    {
    }
    Debug.WriteLine("An exception was encountered " + e.Message + e.StackTrace + e.GetType());
    }
    finally
    {
    Connection.Close();
    }
    }
    Здесь применяется обновление записей в пакетном режиме с помощью установки в ноль свойства UpdateBatchSize адаптера. Если бы свойству UpdateBatchSize было присвоено значение n ( n > 0 ) , то только n первых обновлений производилось бы в пакетном режиме.
     
Загрузка...

Поделиться этой страницей