В кратком єкспресс курсе:
Экспресс курс по языку интегрированных запросов SQL, в уроках 40-44 я объяснил что такое представление (View), как их создавать и как использовать. Сегодня, мы используем наше представление, в приложение Windows Forms с использованием языка программирования C#. Напомню, что представление (View) – это виртуальная таблица, которая формируется на основе запроса Select. Рас это таблица, хоть и виртуальная, мы можем к ней писать запрос, как и к простой таблице. Просто надо понимать, что сначала создастся представление, а потом будет выполнятся наш запрос который направлен к представлению.
Перетягиваем на форму одну кнопку и датагрид. Создаем класс Teacher:
class Teacher
{
public string Name { get; private set; }
public string SubjectName { get; private set; }
public Teacher(string name, string subject_name)
{
Name = name;
SubjectName = subject_name;
}
}
Теперь в обработчике нажатия по кнопке пишем следующий код:
private void button1_Click(object sender, EventArgs e)
{
// строка соединения с бд
string connectionString =
@"Data Source=Max-PC;
Initial Catalog=Test;
Integrated Security=true;";
// запрос
string query =
@"Select 'Преподователь ', [Name],
'ведет предмет ' , [SubjectName]
from TeacherView";
// объект соединения с бд
SqlConnection con =
new SqlConnection(connectionString);
// создаем комманду
SqlCommand cmd =
new SqlCommand(query, con);
try
{
con.Open();
using (SqlDataReader dr = cmd.ExecuteReader())
{
List<Teacher> list = new List<Teacher>();
if (dr.HasRows)
{
while (dr.Read())
{
list.Add(new Teacher(
dr[0].ToString() +
dr[1].ToString(),
dr[2].ToString() +
dr[3].ToString()
)
);
}
}
if (list.Count > 0)
{
dataGridView1.DataSource = list;
}
}
}
catch
{
MessageBox.Show("Не удалось подключится к бд.");
}
finally
{
con.Dispose();
}
}
После или перед конструктором формы, одним словом на уровне класса формы создадим свойство:
List<teacher> TeacherList { get; set; }
которое будет возвращать и принимать коллекцию объектов Teacher.
Вот результат роботы приложения:

Единственное, что я еще скажу, это про фрагмент кода:
while (dr.Read())
{
list.Add(new Teacher(
dr[0].ToString() +
dr[1].ToString(),
dr[2].ToString() +
dr[3].ToString()
)
);
}
На самом деле, в сформированном представление, есть только два столбца, но, объект SqlDataReader получает 4. Почему так??? А 4 столбца он имеет, потому что в запрос был включен текст, где 'преподователь', [Name], 'ведет предмет', 'SubjectName' – это отдельные столбцы.