![]() |
Модераторы: Partizan, gambit |
![]() ![]() ![]() |
|
ДобренькийПапаша |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1278 Регистрация: 14.1.2006 Где: г.Москва Репутация: нет Всего: 7 |
Не знаю как поступить в конкретной ситуации. Ситуация такая. Коллега создал на базе таблицу с двумя столбцами типа varchar(). Создал библиотеку, которая имеет метод Load() и возвращает Dictionary<string, string>. То есть табличка для Key, Value.
Мне во многих окнах надо вытаскивать словарь и обращаться к конкретным ключам, чтобы изменить или просто вытащить value. Предположим, что в главном окне при первой загрузке программы я запишу сразу нужные мне ключи в базу, которые когда либо будут использованы. Но достаточно ли безопасно затем во всех окнах обращаться просто по ключу типа:
Вдруг кто-то залез кривыми руками и удалил этот ключ из базы? Ну мало-ли? Должен ли я проводить предварительные проверки при каждом обращении? Если да, то каждый раз проверять - адские муки. Много дублирования одних и тех же строк (даже если метод типа IsExist() куда-нибудь вынести и всё такое). Так что всё-таки делать в таком случае? -------------------- Меня зовут Себастьян Парейра, торговец чёрным деревом. |
|||
|
||||
jonie |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 22 Всего: 118 |
А вот при получении значения (get метод вышеописанного метода) должны. -------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
ДобренькийПапаша |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1278 Регистрация: 14.1.2006 Где: г.Москва Репутация: нет Всего: 7 |
Тупо каждый раз в коде проверять методом IsExist() или вроде того?
-------------------- Меня зовут Себастьян Парейра, торговец чёрным деревом. |
|||
|
||||
Voyager |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 532 Регистрация: 8.2.2005 Репутация: 3 Всего: 18 |
Нужно разделить вопрос, что именно интересует - поведение класса Dictionary или реализация в базе?
Что-то мне подсказывает, что где-то тут проблема либо с архитектурой, либо с пояснениями. Вопрос про обращение, пример про присвоение, при присвоении у Dictionary ошибок не возникает, при обращении возникает. А с базой тогда что? Как это попадает в базу, как ведется работа с базой? В чем проблемы то? Это сообщение отредактировал(а) Voyager - 9.6.2011, 23:09 |
|||
|
||||
ДобренькийПапаша |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1278 Регистрация: 14.1.2006 Где: г.Москва Репутация: нет Всего: 7 |
Бесит каждый раз проверять наличие ключа в словаре, выкачанного с базы, когда нужно получить значение.
-------------------- Меня зовут Себастьян Парейра, торговец чёрным деревом. |
|||
|
||||
RastaDja |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 337 Регистрация: 1.11.2010 Репутация: нет Всего: 5 |
Это нормальная практика, все так делают. К тому-же никто не запрещает вам создать собственную функцию setByKey() c параметрами таблица, ключ, значение. Внутри функции проверить: есть ли ключ в таблице, если нет указанного ключа - создать (или что-то другое, например выход из функции), после записать в него данные. Вот и все. -------------------- The more closely you look at one thing, the less closely can you see something else. |
|||
|
||||
Voyager |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 532 Регистрация: 8.2.2005 Репутация: 3 Всего: 18 |
ДобренькийПапаша, понял тебя.
Не проверяй, используй Dictionary.TryGetValue, это именно то, что тебе надо. |
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |