SetAllValues

Предоставляет или задает признак, какие значения столбца включены в сгенерированном операторе UPDATE: все или только измененные.

Оператор UPDATE, созданный объектом DbCommandBuilder, может включать значения всех столбцов таблицы (как обновляемых, так и не обновляемых) или же только значения измененных столбцов. Задание для свойства SetAllValues значения true определяет, что создаваемый оператор UPDATE должен включать все столбцы, независимо от того, изменялись их значения или нет.

Декларация
public bool SetAllValues {get; set;};
Значение свойства

Значение типа boolean:

  • true, если оператор UPDATE, созданный объектом DbCommandBuilder, включает все столбцы;

  • false, если он включает только измененные столбцы.

Значение по умолчанию false.

Исключения

Отсутствуют.

Пример
// C#
using System;
using System.Data;
using System.Data.Common;
using System.Data.LinterClient;

class CommandBuilderSample
{
  static void Main()
  {
    // создать соединение с БД
    LinterDbConnection con = new LinterDbConnection();
    con.ConnectionString = "DataSource=LOCAL;UserID=SYSTEM;Password=MANAGER8";
    // создать объект LinterDbDataAdapter
    LinterDbDataAdapter adapter = new LinterDbDataAdapter(
      "select * from AUTO", con);
    adapter.RowUpdated += new EventHandler< RowUpdatedEventArgs >(OnRowUpdated);
    // создать объект LinterDbCommandBuilder
    LinterDbCommandBuilder builder = new LinterDbCommandBuilder(adapter);
    // загрузить данные в DataTable
    DataTable dt = new DataTable();
    adapter.Fill(dt);
    // изменить в строке с id=250 поле COLOR и MAKE
    dt.Rows[250]["COLOR"] = "BLACK";
    dt.Rows[250]["MAKE"] = "FORD";
    // установить SetAllValues false  и посмотреть какой Update – оператор
    // сгенерировал LinterDbCommandBuilder
    builder.SetAllValues = false;
    Console.WriteLine("SetAllValues = false");
    adapter.Update(dt);
    Console.WriteLine();
    // изменить в строке с id=250 поле COLOR и MAKE
    dt.Rows[250]["COLOR"] = "WHITE";
    dt.Rows[250]["MAKE"] = "OPEL";
    // установить SetAllValues true  и посмотреть какой Update – оператор
    //сгенерировал LinterDbCommandBuilder
    builder.SetAllValues = true;
    Console.WriteLine("SetAllValues = true");
    adapter.Update(dt);
    Console.WriteLine();
    // освободить ресурсы
    builder.Dispose();
  }
  static void OnRowUpdated(object sender, RowUpdatedEventArgs args)
  {
    Console.WriteLine(args.Command.CommandText);
  }
}

Результат выполнения примера:

SetAllValues = false
UPDATE "SYSTEM"."AUTO" SET "MAKE" = :param1, "COLOR" = :param2
WHERE (((:param3 = 1 AND "MAKE" IS NULL) OR ("MAKE" = :param4)) AND ((:param5 = 1 AND "MODEL" IS NULL)
OR ("MODEL" = :param6)) AND ((:param7 = 1 AND "BODYTYPE" IS NULL) OR ("BODYTYPE" = :param8))
AND ((:param9 = 1 AND "CYLNDERS" IS NULL) OR ("CYLNDERS" = :param10))
AND ((:param11 = 1 AND "HORSEPWR" IS NULL) OR ("HORSEPWR" = :param12))
AND ((:param13 = 1 AND "DSPLCMNT" IS NULL) OR ("DSPLCMNT" = :param14))
AND ((:param15 = 1 AND "WEIGHT" IS NULL) OR ("WEIGHT" = :param16)) AND ((:param17 = 1
AND "COLOR" IS NULL) OR ("COLOR" = :param18)) AND ((:param19 = 1 AND "YEAR" IS NULL)
OR ("YEAR" = :param20)) AND ((:param21 = 1 AND "SERIALNO" IS NULL)
OR ("SERIALNO" = :param22)) AND ((:param23 = 1 AND "CHKDATE" IS NULL)
OR ("CHKDATE" = :param24)) AND ((:param25 = 1 AND "CHKMILE" IS NULL)
OR ("CHKMILE" = :param26)) AND ("PERSONID" = :param27))

SetAllValues = true
UPDATE "SYSTEM"."AUTO" SET "MAKE" = :param1, "MODEL" = :param2, "BODYTYPE" = :param3,
"CYLNDERS" = :param4, "HORSEPWR" = :param5, "DSPLCMNT" = :param6, "WEIGHT" = :param7,
"COLOR" = :param8, "YEAR" = :param9, "SERIALNO" = :param10, "CHKDATE" = :param11,
"CHKMILE" = :param12, "PERSONID" = :param13 WHERE (((:param14 = 1 AND "MAKE" IS NULL)
OR ("MAKE" = :param15)) AND ((:param16 = 1 AND "MODEL" IS NULL) OR ("MODEL" = :param17))
AND ((:param18 = 1 AND "BODYTYPE" IS NULL) OR ("BODYTYPE" = :param19)) AND ((:param20 = 1
AND "CYLNDERS" IS NULL) OR ("CYLNDERS" = :param21)) AND ((:param22 = 1 AND "HORSEPWR" IS NULL)
OR ("HORSEPWR" = :param23)) AND ((:param24 = 1 AND "DSPLCMNT" IS NULL) OR ("DSPLCMNT" = :param25))
AND ((:param26 = 1 AND "WEIGHT" IS NULL) OR ("WEIGHT" = :param27)) AND ((:param28 = 1
AND "COLOR" IS NULL) OR ("COLOR" = :param29)) AND ((:param30 = 1 AND "YEAR" IS NULL)
OR ("YEAR" = :param31)) AND ((:param32 = 1 AND "SERIALNO" IS NULL) OR ("SERIALNO" = :param33))
AND ((:param34 = 1 AND "CHKDATE" IS NULL) OR ("CHKDATE" = :param35)) AND ((:param36 = 1
AND "CHKMILE" IS NULL) OR ("CHKMILE" = :param37)) AND ("PERSONID" = :param38))