Как сохранить app.config посредством использования обновлений ClickOnce ConfigurationManager?

TRUE и FALSE являются ключевыми словами и не должны заключаться в кавычки в виде строк:

INSERT INTO first VALUES (NULL, 'G22', TRUE);
INSERT INTO first VALUES (NULL, 'G23', FALSE);

При цитировании их в виде строк MySQL преобразует их в их целочисленный эквивалент (поскольку логические значения действительно только однобайтовый INT в MySQL), который переводится в ноль для любой нечисловой строки. Таким образом, вы получаете 0 для обоих значений в вашей таблице.

Нечисловые строки приводятся к нулю:

mysql> SELECT CAST('TRUE' AS SIGNED), CAST('FALSE' AS SIGNED), CAST('12345' AS SIGNED);
+------------------------+-------------------------+-------------------------+
| CAST('TRUE' AS SIGNED) | CAST('FALSE' AS SIGNED) | CAST('12345' AS SIGNED) |
+------------------------+-------------------------+-------------------------+
|                      0 |                       0 |                   12345 |
+------------------------+-------------------------+-------------------------+

Но ключевые слова возвращают их соответствующее INT представление:

mysql> SELECT TRUE, FALSE;
+------+-------+
| TRUE | FALSE |
+------+-------+
|    1 |     0 |
+------+-------+

Обратите внимание, что я заменил ваш двойной кавычки с одинарными кавычками, как и более стандартные строковые вложения SQL. Наконец, я заменил ваши пустые строки для id на NULL. Пустая строка может выдать предупреждение.

6
задан Community 23 May 2017 в 12:07
поделиться

1 ответ

ClickOnce должен поддерживать пользовательские настройки между обновлениями, но у меня это случалось один или два раза по неизвестным причинам (и с плохими результатами). Я не пробовал настраивать пользовательские параметры конфигурации, но потерял уверенность в способности ClickOnce не перезаписывать параметры.

Подход, который я планирую использовать, состоит в том, чтобы вручную обрабатывать обновления ClickOnce, а не разрешать приложение. чтобы проверить наличие обновлений и предложить пользователю установить. У меня также было несколько пользователей, которые не приняли обновление, и от этого трудно избавиться. Обрабатывая обновление вручную, я надеюсь, что смогу считывать пользовательские настройки в память перед обновлением, а затем записывать их обратно после завершения обновления. Есть событие ApplicationUpdated, которое должно служить этой цели.

Возможно, этот подход может сработать и для вас.

3
ответ дан 17 December 2019 в 07:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: