Форум программистов
Реклама:
Гарантия безопасности сети с UTM-системой ИКС.
Защита ПД, межсетевой экран, контроль доступа, фильтрация трафика, система предотвращения вторжений.
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > .NET > Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 19.04.2017, 20:41   #1
tuchin
 
Регистрация: 09.02.2017
Сообщений: 5
Репутация: 10
Вопрос Как обеспечить зависимость значений для ввода в поле базы данных от значения в другом поле базы данных?

В таблицу DicFactor вводятся факторы, а в связанную с ней таблицу FactorValue вводятся допустимые значения факторов. Например, для фактора 0 вводятся допустимые значения Большой, Средний, Малый, а для фактора 1 - Да, Нет. Хотелось бы сделать следующее:
- чтобы после ввода фактора в dgvTable в списке для ввода значений факторов в dgvTableValue появлялись бы только допустимые факторы;
- чтобы после ввода фактора в dgvRule в списке для ввода значений факторов появлялись бы только допустимые факторы.
Помогите, пожалуйста. Проект прикрепил.
Вложения
Тип файла: zip EsTest.zip (32.0 Кб, 4 просмотров)
tuchin вне форума   Ответить с цитированием
Старый 19.04.2017, 21:59   #2
hoolygan
Форумчанин
 
Регистрация: 11.04.2017
Сообщений: 63
Репутация: 10
По умолчанию

Вот так сходу, не смотря на код. Смотрите в сторону linq запросов в таблицу. Думаете сильно интересно скачивать, распаковывать, всматриваться в код, понять что и ауда? Дайте сюда кусок кода, который пробовали для отработки выборки, тогда подсказать можно. А так... сколько готовы заплатить? На фрилансе?
hoolygan вне форума   Ответить с цитированием
Старый 21.04.2017, 11:56   #3
tuchin
 
Регистрация: 09.02.2017
Сообщений: 5
Репутация: 10
По умолчанию

Я использую ADO.NET и не хочу использовать LinQ. Поясню, что хотелось бы реализовать. Создаю структуру таблицы dgvTableValue:
Код:

      dgvTableValue.Columns.Add(new DataGridViewTextBoxColumn()
      {
        Name             = "ID",
        HeaderText       = "ID",
        DataPropertyName = "ID"
      });
      dgvTableValue.Columns.Add(new DataGridViewTextBoxColumn()
      {
        Name             = "TableFactorID",
        HeaderText       = "TableFactorID",
        DataPropertyName = "TableFactorID"
      });
      dgvTableValue.Columns.Add(new DataGridViewComboBoxColumn()
      {
        Name             = "FactorValueID",
        HeaderText       = "Значение целевого фактора",
        DataPropertyName = "FactorValueID",
        DataSource       = ds.Tables["DicFactorValue"],
        DisplayMember    = "FactorValue",
        ValueMember      = "ID"
      });
      dgvTableValue.Columns.Add(new DataGridViewTextBoxColumn()
      {
        Name             = "TableValueMemo",
        HeaderText       = "Примечание",
        DataPropertyName = "TableValueMemo"
      });

В DataSource = ds.Tables["DicFactorValue"] надо подставить не все данные из таблицы, а только те, которые связаны с выбранным фактором и находятся в таблице FactorValue. Но при этом нужна возможность выбора этих связанных с фактором данных из списка.
tuchin вне форума   Ответить с цитированием
Старый 21.04.2017, 18:54   #4
hoolygan
Форумчанин
 
Регистрация: 11.04.2017
Сообщений: 63
Репутация: 10
По умолчанию

А каким образом идет зависимость linq от ADO - мы может на разных планетах живем?
Вот живой код из моего проекта
Код:

DataTable dt = MCReferences.dtInvoiceStatuses.AsEnumerable().Where(r => r.Field<int>("Id") != 3).CopyToDataTable();
            lueStatus.Properties.DataSource = dt;

hoolygan вне форума   Ответить с цитированием
Старый 21.04.2017, 20:41   #5
tuchin
 
Регистрация: 09.02.2017
Сообщений: 5
Репутация: 10
По умолчанию

Я, честно говоря, не знаю, для чего нужен LinQ. Без него нельзя решить мою задачу? Если нельзя, то тогда придется заняться его изучением. Если можно, то хотелось бы решить задачу без него.
tuchin вне форума   Ответить с цитированием
Старый 21.04.2017, 21:48   #6
hoolygan
Форумчанин
 
Регистрация: 11.04.2017
Сообщений: 63
Репутация: 10
По умолчанию

Это запросы, наподобии того, как делаешь к сиквелу. И таки да, желательно поизучать, для работы с БД без них практически никуда. Самый простой пример - скорость. Выборка небольших объемов в linq в памяти в тысячи раз быстрее, чем чтение из БД. А в своем запросе я делаю новую табличку, в которой из старой передаю значения, убирая тройку из колонки с именем "Id" и связываю эту таблицу с контролом. Собственно это и есть решение твоей задачи, только логику навешать нужно.

Последний раз редактировалось hoolygan; 21.04.2017 в 21:51.
hoolygan вне форума   Ответить с цитированием
Старый 22.04.2017, 13:31   #7
tuchin
 
Регистрация: 09.02.2017
Сообщений: 5
Репутация: 10
По умолчанию

Спасибо, постараюсь разобраться
tuchin вне форума   Ответить с цитированием
Старый 22.04.2017, 14:35   #8
Пепел Феникса
Модератор
Заслуженный модератор
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Адрес: Москва
Сообщений: 20,963
Репутация: 3384

icq: 446843180
skype: phoenix_proger
По умолчанию

Цитата:
Сообщение от hoolygan Посмотреть сообщение
Выборка небольших объемов в linq в памяти в тысячи раз быстрее, чем чтение из БД.
лучше изначально тогда не читать в память лишнее.
__________________
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума   Ответить с цитированием
Старый 22.04.2017, 19:21   #9
hoolygan
Форумчанин
 
Регистрация: 11.04.2017
Сообщений: 63
Репутация: 10
По умолчанию

Та ну ладно. Допустим -стоит задача, как раз как у ТС.
2 контрола lookupedit (грубо как и комбобоксы) - к ним подвязаны датасорсы.
1- список бизнесов
2 - список филлиалов
Филлиалов в общей сложности порядка 3000 - необходимы только названия, бизнесов 15 - у каждого свои.
linq выборка филлиалов идет порядка 0,2 - 0,5 мс (простые выборки по значению в таблице датасорса).
И мне предлагается каждый раз на дерганье первого контрола дергать соединение с БД? Да ну нафиг )
hoolygan вне форума   Ответить с цитированием
Старый 23.04.2017, 02:07   #10
Пепел Феникса
Модератор
Заслуженный модератор
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Адрес: Москва
Сообщений: 20,963
Репутация: 3384

icq: 446843180
skype: phoenix_proger
По умолчанию

либо кэшировать, либо дергать, да.

зависит еще от объема данных, от частоты обновления данных и тп.
правильно сформированная БД работает довольно быстро.
когда я работал со справочником КЛАДР, мне не приходилось думать о задержках(весь КЛАДР целиком не влезет в памяти x86 процесса), так как запросы шли по индексам.
и так как раз шли все эти зависимости, любой пункт ниже зависит от пунктов выше.
__________________
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.

Последний раз редактировалось Пепел Феникса; 23.04.2017 в 02:09.
Пепел Феникса вне форума   Ответить с цитированием
Ответ



Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
проверка ввода данных в поле Swatch JavaScript, Ajax 1 11.08.2014 07:50
Проверка значения в поле базы exedmxexe PHP 14 17.03.2012 21:30
Как использовать значения из базы данных? c# Anton007 Общие вопросы C/C++ 1 17.05.2011 00:13
Значения в поле подстановок зависят от значения в другом поле pyhtelka Microsoft Office Access 4 13.06.2010 10:42
Можно ли скопировать поле базы данных в ListBox? Вася Рогов БД в Delphi 4 07.05.2009 19:45




23:23.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.

купить трафик


как улучшить посещаемость, а также решения по монетизации сайтов, видео и приложений

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru