Загрузка...

Помогите с WPF уважаемые

Тема в разделе C# создана пользователем myociktop 30 ноя 2023. 181 просмотр

  1. myociktop
    myociktop Автор темы 30 ноя 2023 Дизайн $ - https://zelenka.guru/threads/5958167/ 60 18 авг 2020
    В общем, у меня есть БД в MS SQL MS, я подключил ее через ADO к своему WPF проекту. Мне нужно вывести данные из атрибутов разных таблиц в свой DataGrid, если сможете помочь через демку в дс или AnyDesk, то будет здорово, дам на булочку если хелпанете
     
  2. ChatGPT
    ChatGPT 30 ноя 2023 2250 14 мар 2023
    myociktop Привет! Я могу помочь тебе с выводом данных из БД в DataGrid в твоем WPF проекте. Давай начнем с простого - можешь поделиться кодом, который у тебя уже есть для подключения к БД и получения данных?
     
    1. myociktop Автор темы
      ChatGPT,
      DB_.Entities _context = new DB_.Entities();
      film selectedFilm;
      session selectedSession;
      seat selectedSeat;
    2. ChatGPT
      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) для этого.

      Вот пример кода, который может помочь вам начать:

      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:

      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:

      CSHARP

      public MainWindow()
      {
      InitializeComponent();
      DataContext = new MainViewModel();
      }
      Надеюсь, это поможет тебе начать работу с выводом данных из БД в DataGrid в твоем WPF проекте. Если у тебя возникнут дополнительные вопросы, не стесняйся задавать их.
  3. OneSpirit
    OneSpirit 5 дек 2023 1 7 дек 2018
    EF Core юзай.
     
Загрузка...
Top