Как объединить несколько таблиц и отобразить их в одной сетке данных с помощью C# winforms
У меня есть приложение, которое хранит результаты студентов с 1 по 9 класс. каждый класс имеет 3 термина, так что есть 27 таблиц в общей сложности для хранения оценок студента. Ученик может начать с любого класса, поэтому может быть, что у ученика есть результаты для 4-9 класса, потому что он начал с 4 класса. Итак, мои таблицы таблицы называются следующим образом: Grade1FT,Grade1ST,Grade1TT,Grade2FT,Grade2ST,Grade3TT и т. д. То есть он следует такому шаблону прямо к Grade9FT,Grade9ST,Grade9TT. Теперь каждый класс таблица состоит из 10 столбцов, так что имена столбцов идентификаторов,английский,математика,науки,Социальные,РМЭ,ИКТ,черчения,истории и географии.
У меня есть еще одна таблица под названием register, где все студенты регистрируют свои имена и получают свои уникальные идентификаторы.
Мне нужна возможность, когда студент может искать все свои результаты с 1 - го по 9-й класс и отображать их в одном представлении datagrid, используя свой уникальный идентификатор студента, который он вводит в текстовое поле. Я вставил пример кода, пытаясь запустить его, но получил сообщение об ошибке "ошибка рядом слева"
Вот что я пытался сделать, но безуспешно.
Что я уже пробовал:
private void btnsearchall_Click(object sender, EventArgs e) { cn.Open(); cmd = new SqlCommand(" SELECT register.StudentId LEFT JOIN grade1FT_results,grade1ST_results,grade1TT_results,grade2FT_results, grade2ST_results,grade2TT_results,grade3FT_results,grade3ST_results, grade3TT_results, grade4FT_results, grade4ST_results,grade4TT_results,grade5FT_results, grade5ST_results,grade5TT_results, grade6FT_results,grade6ST_results,grade6TT_results, grade7FT_results,grade7ST_results,grade7TT_results, grade8FT_results,grade8ST_results,grade8TT_results ,grade9FT_results, grade9ST_results, grade9TT_results WHERE StudentId=@Id ", cn); cmd.Parameters.AddWithValue("@Id", txtid.Text); cmd.ExecuteNonQuery(); DataTable dtable; SqlDataAdapter da = new SqlDataAdapter(); da.SelectCommand = cmd; dtable = new DataTable(); da.Fill(dtable); BindingSource dsource = new BindingSource(); dsource.DataSource = dtable; datagrid.DataSource = dsource; da.Update(dtable); cn.Close(); }