В общем, у меня есть БД в MS SQL MS, я подключил ее через ADO к своему WPF проекту. Мне нужно вывести данные из атрибутов разных таблиц в свой DataGrid, если сможете помочь через демку в дс или AnyDesk, то будет здорово, дам на булочку если хелпанете
myociktop Привет! Я могу помочь тебе с выводом данных из БД в DataGrid в твоем WPF проекте. Давай начнем с простого - можешь поделиться кодом, который у тебя уже есть для подключения к БД и получения данных?
ChatGPT, DB_.Entities _context = new DB_.Entities(); film selectedFilm; session selectedSession; seat selectedSeat;
myociktop, спасибо за предоставленный код. Чтобы вывести данные из атрибутов разных таблиц в DataGrid, нам нужно выполнить несколько шагов. 1. Создайте классы, соответствующие таблицам в вашей базе данных. Например, если у вас есть таблицы "Film", "Session" и "Seat", создайте классы Film, Session и Seat, которые будут содержать свойства, соответствующие атрибутам этих таблиц. 2. В вашем WPF проекте создайте ViewModel, который будет содержать данные для отображения в DataGrid. В этом ViewModel вы можете создать свойства типа ObservableCollection<Film>, ObservableCollection<Session> и ObservableCollection<Seat>, которые будут содержать данные из соответствующих таблиц. 3. В методе, где вы получаете данные из БД, заполните коллекции в вашем ViewModel данными из таблиц. Например, вы можете использовать LINQ для выполнения запросов к БД и заполнения коллекций. 4. Привяжите свойства коллекций в вашем ViewModel к ItemsSource свойству DataGrid в XAML. Например, вы можете использовать привязку данных (Data Binding) для этого. Вот пример кода, который может помочь вам начать: public class Film { public int Id { get; set; } public string Title { get; set; } // Добавьте другие свойства, соответствующие атрибутам таблицы Film } public class Session { public int Id { get; set; } public DateTime StartTime { get; set; } // Добавьте другие свойства, соответствующие атрибутам таблицы Session } public class Seat { public int Id { get; set; } public string SeatNumber { get; set; } // Добавьте другие свойства, соответствующие атрибутам таблицы Seat } public class MainViewModel { public ObservableCollection<Film> Films { get; set; } public ObservableCollection<Session> Sessions { get; set; } public ObservableCollection<Seat> Seats { get; set; } public MainViewModel() { Films = new ObservableCollection<Film>(); Sessions = new ObservableCollection<Session>(); Seats = new ObservableCollection<Seat>(); // Здесь выполните запросы к БД и заполните коллекции данными из таблиц // Например, используйте LINQ для этого _context = new DB_.Entities(); Films = new ObservableCollection<Film>(_context.Films.ToList()); Sessions = new ObservableCollection<Session>(_context.Sessions.ToList()); Seats = new ObservableCollection<Seat>(_context.Seats.ToList()); } } CSHARP public class Film { public int Id { get; set; } public string Title { get; set; } // Добавьте другие свойства, соответствующие атрибутам таблицы Film } public class Session { public int Id { get; set; } public DateTime StartTime { get; set; } // Добавьте другие свойства, соответствующие атрибутам таблицы Session } public class Seat { public int Id { get; set; } public string SeatNumber { get; set; } // Добавьте другие свойства, соответствующие атрибутам таблицы Seat } public class MainViewModel { public ObservableCollection<Film> Films { get; set; } public ObservableCollection<Session> Sessions { get; set; } public ObservableCollection<Seat> Seats { get; set; } public MainViewModel() { Films = new ObservableCollection<Film>(); Sessions = new ObservableCollection<Session>(); Seats = new ObservableCollection<Seat>(); // Здесь выполните запросы к БД и заполните коллекции данными из таблиц // Например, используйте LINQ для этого _context = new DB_.Entities(); Films = new ObservableCollection<Film>(_context.Films.ToList()); Sessions = new ObservableCollection<Session>(_context.Sessions.ToList()); Seats = new ObservableCollection<Seat>(_context.Seats.ToList()); } } В XAML вашего WPF окна добавьте DataGrid и привяжите его к свойствам коллекций в вашем ViewModel: <DataGrid ItemsSource="{Binding Films}" AutoGenerateColumns="False"> <DataGrid.Columns> <!-- Здесь добавьте столбцы для отображения нужных атрибутов таблицы Film --> </DataGrid.Columns> </DataGrid> <DataGrid ItemsSource="{Binding Sessions}" AutoGenerateColumns="False"> <DataGrid.Columns> <!-- Здесь добавьте столбцы для отображения нужных атрибутов таблицы Session --> </DataGrid.Columns> </DataGrid> <DataGrid ItemsSource="{Binding Seats}" AutoGenerateColumns="False"> <DataGrid.Columns> <!-- Здесь добавьте столбцы для отображения нужных атрибутов таблицы Seat --> </DataGrid.Columns> </DataGrid> XAML <DataGrid ItemsSource="{Binding Films}" AutoGenerateColumns="False"> <DataGrid.Columns> <!-- Здесь добавьте столбцы для отображения нужных атрибутов таблицы Film --> </DataGrid.Columns> </DataGrid> <DataGrid ItemsSource="{Binding Sessions}" AutoGenerateColumns="False"> <DataGrid.Columns> <!-- Здесь добавьте столбцы для отображения нужных атрибутов таблицы Session --> </DataGrid.Columns> </DataGrid> <DataGrid ItemsSource="{Binding Seats}" AutoGenerateColumns="False"> <DataGrid.Columns> <!-- Здесь добавьте столбцы для отображения нужных атрибутов таблицы Seat --> </DataGrid.Columns> </DataGrid> Не забудьте установить DataContext вашего окна на экземпляр вашего ViewModel: public MainWindow() { InitializeComponent(); DataContext = new MainViewModel(); } CSHARP public MainWindow() { InitializeComponent(); DataContext = new MainViewModel(); } Надеюсь, это поможет тебе начать работу с выводом данных из БД в DataGrid в твоем WPF проекте. Если у тебя возникнут дополнительные вопросы, не стесняйся задавать их.