Как отфильтровать «table_2» в зависимости от выбранной записи в «table_1»? - PullRequest
0 голосов
/ 21 февраля 2019

Я использую:

  • Entity Framework v6.2.0
  • SQL Server 2012

У меня есть эти таблицы:

  • tbl_01_Groups;
  • tbl_02_Students;
  • tbl_03_GroupsStud;
    Таблица tbl_01_Groups отображается в dataGridView1.Один студент может быть в нескольких группах.

Для решения этой проблемы подозреваю, что необходимо построить таблицу отношений tbl_03_GroupsStud.

Вопрос: как заставить dataGridView2 отображать table_2 записей, принадлежащих группе, выбранной в dataGridView1?

Требования для table_2:

  1. table_2 должны содержать следующие поля:

    • [tbl_02_Students]. [NameStud];
    • [tbl_02_Students]. [Property_1];
    • [tbl_01_Groups]. [NameGroup];
    • ... другие необходимые столбцы
  2. если в запись table_2 вносятся изменения, то эти изменения отображаются в исходном источнике;

  3. если запись добавлена ​​к table_2, то эта запись отображается в источнике;
  4. Table_2 планируется использовать в другом запросе.

Как заставить table_2 соответствовать вышеуказанным требованиям?

Мой код:

ContextDB cntxtDB;

public Frm1UC()
{
    InitializeComponent();

    cntxtDB = new ContextDB();
}

private void Frm1UC_Load(object sender, EventArgs e)
{
    Fill_dataGridView1();
}

public void Fill_dataGridView1()
{
    try
    {
        cntxtDB.tbl_01_Groups.Load();
        bs_Grid1.DataSource = cntxtDB.tbl_01_Groups.Local.ToBindingList();
        dataGridView1.DataSource = bs_Grid1;
    }
    catch (Exception ex)
    {
        string s = ex.Message;
        string t = ex.StackTrace;
        // throw;
        MessageBox.Show(s);
    }
}

tbl_01_Groups:

enter image description here

tbl_02_Students:

enter image description here

tbl_03_GroupsStud:

enter image description here

dataGridView1, dataGridView2:

enter image description here

Update_1
что-тоКак мне удалось сделать с помощью запросов в MSAccess:
Запрос req_GroupsStud_Stud:

SELECT tbl_03_GroupsStud.*, tbl_02_Students.NameStud
FROM tbl_03_GroupsStud 
INNER JOIN tbl_02_Students 
ON tbl_03_GroupsStud.id_stud = tbl_02_Students.id_stud;

Запрос req_GroupsStud_CurGroup:

SELECT req_GroupsStud_Stud.*, req_GroupsStud_Stud.id_group
FROM req_GroupsStud_Stud
WHERE (((req_GroupsStud_Stud.id_group)=[Forms]![frm_00_00_MainForm]![id_group_Frm]));

Из формы, используявыражение [Forms]![Frm_00_00_MainForm]![Id_group_Frm], параметр [id_group_Frm] передается в запрос.

Я не понимаю, как сделать то же самое, используя Entity Framework и MS SQL Serever.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...