Helpmij.nl
Helpmij.nl
Helpmij.nl
Steun Helpmij.nl! Klik hier     Computerprobleem? Klik hier!

Quote

Weergeven resultaten 1 tot 3 van 3

Onderwerp: Update in gridview voor 3 'joined' tabellen met gebruik van dropdownlists

  • Vraag is niet opgelost
  1. #1

    Update in gridview voor 3 'joined' tabellen met gebruik van dropdownlists

    Ik heb een gridview gevult met een query welke 2 tabellen (medewerkers en projecten) koppelt aan een 3e tabel (gewerkte uren).

    Code:
    SELECT Uren.ProjectID, Uren.MwdID, MDW.mdwNr, MDW.mdwFirstName, 
    MDW.mdwLastName, Projecten.ProjectNr, Projecten.ProjectNaam, Uren.Uren, 
    Uren.Minuten, Uren.Date FROM Uren INNER JOIN Projecten ON 
    Uren.ProjectID = Projecten.ProjectID INNER JOIN MDW ON Uren.MwdID = MDW.MdwID
    In de gridview worden deze gegevens weergegeven.
    Nu wil ik middels een DropDownList bijv. het ProjectNr wijzigen. Als ik deze wijzig moet uiteraard de projectnaam mee wijzigen.

    Ik heb hiervoor de editItemTemplate voor de MdwID kolom aangepast:

    Code:
    <EditItemTemplate>
     <asp:DropDownList ID="ddlUpdateMdwID" runat="server" AutoPostBack="True" 
       DataSourceID="SDSMedewerkers" DataTextField="mdwNr" DataValueField="MdwID" 
       SelectedValue='<%# Bind("MwdID") %>'>
     </asp:DropDownList>
    </EditItemTemplate>
    voor het Update Command hen ik het volgende
    Code:
    UPDATE Uren SET ProjectID = @ProjectID, MwdID = @MdwID,
    Uren = @Uren, Minuten = @Minuten, Date = @Date
    Helaas krijg ik de foutmelding:

    Code:
    Cannot insert the value NULL into column 'ProjectID', 
    table 'D:\WEBSITES\X\APP_DATA\DATABASE.MDF.dbo.Uren'; 
    column does not allow nulls. UPDATE fails.
    The statement has been terminated.
    Dit terwijl volgens mij de value: ProjectID gewoon uit dezelfde regel zou moeten komen. Wat doe ik verkeerd of waar gaat mijn denkwijze mis.

    Ik hoop dat iemand mij kan helpen.

  2. #2
    Senior Member
    Geregistreerd
    12 januari 2008
    Locatie
    Wolvega
    Afstand tot server
    ±66 km
    Zou je de select en update parameters er ook bij willen zetten?
    Kind regards,

    Matthijs Koopman

  3. #3
    Mathijs,

    kun je aangeven waar je naartoe wilt. De parameters zijn gegenereerd door VS2010. Ik ben er vanuit gegaan (sorry ik ben redelijk nieuw met asp) dat VS2010 uit de invulling van deze variabelen afhandeld. Ik kan ongetwijfeld zelf ingrijpen in de 'update' functie welke de grid zelf genereerd. Ik heb alleen de kennis volgens mij nog niet dit voor elkaar te krijgen. (al ben ik druk aan het lezen)

    Een klankbord voor mijn problemen is dan ook altijd welkom net als praktische informatie. Technische kennis is fijn, inzichten in hoe je dit zou kunnen doen ook, maar ervaring leert dat verschillende mensen verschillende inzichten hebben in praktische oplossingen ook als zij dezelfde kennis hebben

    hier de code welke VS gegenereerd heeft. Ik vul overigens de database via een aantal textboxes met wel een stuk eigen code.

    Code:
    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
                CellPadding="4" DataSourceID="SDSUren" EnableModelValidation="True" 
                ForeColor="#333333" GridLines="None" AllowPaging="True" 
                AllowSorting="True">
                <AlternatingRowStyle BackColor="White" ForeColor="#284775" />
                <Columns>
                    <asp:BoundField DataField="MwdID" HeaderText="MwdID" 
                        SortExpression="MwdID" />
                    <asp:TemplateField HeaderText="mdwNr" SortExpression="mdwNr">
                        <EditItemTemplate>
                            <asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True" 
                                DataSourceID="SDSMedewerkers" DataTextField="Medewerker" DataValueField="MdwID">
                            </asp:DropDownList>
                        </EditItemTemplate>
                        <ItemTemplate>
                            <asp:Label ID="Label1" runat="server" Text='<%# Bind("mdwNr") %>'></asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:BoundField DataField="mdwFirstName" HeaderText="mdwFirstName" 
                        SortExpression="mdwFirstName" />
                    <asp:BoundField DataField="mdwLastName" HeaderText="mdwLastName" 
                        SortExpression="mdwLastName" />
                    <asp:BoundField DataField="ProjectID" HeaderText="ProjectID" 
                        SortExpression="ProjectID" />
                    <asp:BoundField DataField="ProjectNr" HeaderText="ProjectNr" 
                        SortExpression="ProjectNr" />
                    <asp:BoundField DataField="ProjectNaam" HeaderText="ProjectNaam" 
                        SortExpression="ProjectNaam" />
                    <asp:BoundField DataField="Uren" HeaderText="Uren" SortExpression="Uren" />
                    <asp:BoundField DataField="Minuten" HeaderText="Minuten" 
                        SortExpression="Minuten" />
                    <asp:BoundField DataField="Date" HeaderText="Date" SortExpression="Date" />
                    <asp:CommandField ShowDeleteButton="True" ShowEditButton="True" />
                </Columns>
                <EditRowStyle BackColor="#999999" />
                <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
                <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
                <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
                <RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
                <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
            </asp:GridView>
            <asp:SqlDataSource ID="SDSUren" runat="server" 
                ConnectionString="<%$ ConnectionStrings:DataBaseFile %>" 
                DeleteCommand="DELETE FROM Uren WHERE (UrenID = @UrenID)" 
                InsertCommand="INSERT INTO Uren(ProjectID, MwdID, Uren, Minuten, Date) VALUES (@ProjectID, @MdwID, @Uren, @Minuten, @Date)" 
                SelectCommand="SELECT Uren.ProjectID, Uren.MwdID, MDW.mdwNr, MDW.mdwFirstName, MDW.mdwLastName, Projecten.ProjectNr, Projecten.ProjectNaam, Uren.Uren, Uren.Minuten, Uren.Date FROM Uren INNER JOIN Projecten ON Uren.ProjectID = Projecten.ProjectID INNER JOIN MDW ON Uren.MwdID = MDW.MdwID" 
                UpdateCommand="UPDATE Uren SET ProjectID = @ProjectID, MwdID = @MdwID, Uren = @Uren, Minuten = @Minuten, Date = @Date">
                <DeleteParameters>
                    <asp:Parameter Name="UrenID" />
                </DeleteParameters>
                <InsertParameters>
                    <asp:Parameter Name="ProjectID" />
                    <asp:Parameter Name="MdwID" />
                    <asp:Parameter Name="Uren" />
                    <asp:Parameter Name="Minuten" />
                    <asp:Parameter Name="Date" />
                </InsertParameters>
                <UpdateParameters>
                    <asp:Parameter Name="ProjectID" />
                    <asp:Parameter Name="MdwID" />
                    <asp:Parameter Name="Uren" />
                    <asp:Parameter Name="Minuten" />
                    <asp:Parameter Name="Date" />
                </UpdateParameters>
            </asp:SqlDataSource>

Berichtenregels

  • U mag geen nieuwe discussies starten.
  • U mag niet reageren op berichten.
  • U mag geen bijlagen versturen.
  • Umag niet uw berichten bewerken.
  •  
Helpmij.nl
Helpmij.nl

Helpmij.nl en business

Partners
Sponsoren
Linkpartners
Aanbiedingen