Bonjour à tous,

Je me permets de vous contacter, car j'ai actuellement un souci à afficher mes données dans un DataGrid.

Mon but est de réaliser un CRUD comme le tutoriel que j'ai suivi ci joint :


Dans ce tutoriel, le mec fait le traitement avec une seule table/classe puis qu'avec Linq, une classe est une table.

Bref moi j'essaie de récupérer plusieurs informations dans ma BDD, j'ai fait donc une requete avec jointure avec Linq mais je n'arrive pas à afficher mes données.

Voici mon DataGrid:
Nom : Capture.PNG
Affichages : 945
Taille : 11,2 Ko

Mon code XAML :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
<DataGrid AutoGenerateColumns="False"  HorizontalAlignment="Left" Margin="14,92,0,0" Name="BookingData" VerticalAlignment="Top" Height="525"  Background="White">
            <DataGrid.Columns>
                <DataGridTextColumn Header="N°Réservation" Binding="{Binding Path=BookingId, IsAsync=True}" Width="*"/>
                <DataGridTextColumn Header="Nom" Binding="{Binding Path=LastName, IsAsync=True}" Width="*"/>
                <DataGridTextColumn Header="Prénom" Binding="{Binding Path=FirstName, IsAsync=True}" Width="*"/>
                <DataGridTextColumn Header="Date d'arrivée" Binding="{Binding Path=BookingStartDate, IsAsync=True}" Width="*"/>
                <DataGridTextColumn Header="Date de départ" Binding="{Binding Path=BookingEndDate, IsAsync=True}" Width="*"/>
                <DataGridTextColumn Header="Nuit(s)" Binding="{Binding Path=BookingNbNight, IsAsync=True}" Width="*"/>
                <DataGridTextColumn Header="N°Chambre" Binding="{Binding Path=RoomId, IsAsync=True}" Width="*"/>
                <DataGridTextColumn Header="Total" Binding="{Binding Path=BillTotal, IsAsync=True}" Width="*"/>
                <DataGridTextColumn Header="Acompte" Binding="{Binding Path=PaymentAccount, IsAsync=True}" Width="*"/>
                <DataGridTextColumn Header="Statuts" Binding="{Binding Path=BookingStatus, IsAsync=True}" Width="*"/>
            </DataGrid.Columns>
        </DataGrid>
Mon fichier xaml.cs :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
 
private void Window_Loaded(object sender, RoutedEventArgs e)
        {
 
            //chargement des donnees
             List<BookingPlan> plan = new List<BookingPlan>();
             DataClasses1DataContext data = new DataClasses1DataContext();
 
 
            var sql = from book in data.BOOKING
                      join cust in data.CUSTOMERS on book.BookingId equals cust.BookingId
                      join bkRoom in data.BOOKING_ROOM on book.BookingId equals bkRoom.BookingId
                      join facture in data.BILL on book.BookingId equals facture.BookingId
                      join pay in data.PAYMENT on facture.PaymentId equals pay.PaymentId
                      select new { book.BookingId, book.BookingStartDate, book.BookingEndDate, book.BookingNbNight, book.BookingStatus, cust.FirstName, cust.LastName, bkRoom.RoomId, facture.BillTotal, pay.PaymentAccount };
 
                       foreach (var item in sql){
                           plan.Add(new BookingPlan()
                           {
                                BookingId=item.BookingId,
                                BookingStartDate = (DateTime)item.BookingStartDate,
                                BookingEndDate =(DateTime) item.BookingEndDate,
                                BookingNbNight = (int)(item.BookingNbNight),
                                BookingStatus = item.BookingStatus,
                                FirstName = item.FirstName,
                                LastName = item.LastName,
                                RoomId = item.RoomId,
                                BillTotal = (double)item.BillTotal,
                                PaymentAccount =(double) item.PaymentAccount,
                        });
                           BookingData.ItemsSource = plan;
 
            }
 
 
        }
Est ce possible?

Merci par avance