Click here to Skip to main content
15,907,329 members
Please Sign up or sign in to vote.
5.00/5 (1 vote)
See more:
Good morning everyone!

I was sitting an a problem last night and couldn't find a solution so I help you can help me now :P

I'm using the InsertComand from the SqlDataSource to write to a Database. The problem is that the Parameters are always NULL. I get them with the InsertParameters -> <asp:Formparameter formfield="NameOfTheControl" like in the msdn example but I cant get it to work.... Could it be that the Formcontrol can't be nested in another Control?

Sincerely Stefan

PS: Here is the whole code:
XML
<%@ Page Title="" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="ManageKurse.aspx.cs" Inherits="FHGothamCity2.Personal.ManageKurse" %>
<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="server">
<script runat="server">
    private void LoginButton_Click(object source, EventArgs e)
    {
        DBStudiengaenge.Insert();
    }

</script>

</asp:Content>
<asp:Content ID="Content2" runat="server" ContentPlaceHolderID="TitleContent">
    -- Personal
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="MainContent" runat="server">
    <h2>Lehrveranstaltungsverwaltung:</h2> </br>

    <asp:SqlDataSource ID="SqlDataSource1" runat="server"
        ConnectionString="<%$ ConnectionStrings:DataBaseConnectionString %>"
        SelectCommand= "SELECT [Studiengang], [Name],[ID] FROM [Lehrveranstaltung] ORDER BY [Studiengang], [Name]"
        >
    </asp:SqlDataSource>

    <asp:DataGrid id="DataGrid1" AutoGenerateColumns="False"
        runat="server" DataSourceID="SqlDataSource1">
        <Columns>
            <asp:BoundColumn DataField="ID" HeaderText="ID" Visible="false"></asp:BoundColumn>
            <asp:BoundColumn DataField="Name" HeaderText="Name"></asp:BoundColumn>
            <asp:BoundColumn DataField="Studiengang" HeaderText="Studiengang"></asp:BoundColumn>
            <asp:HyperLinkColumn
                    HeaderText="Eingetragene Studenten"
                    DataNavigateUrlField="ID"
                    DataNavigateUrlFormatString="ManageStudentenInKurs.aspx?id={0}"
                    Text="View"></asp:HyperLinkColumn>
            <asp:TemplateColumn>
                <ItemTemplate>
                    <asp:Button runat="server" ID="btViewStudenten" CommandName="btViewStudenten" Text="Zeige Studentenliste" ToolTip="Zeigt die in den Kurs eingeschriebenen Studenten"/>
                </ItemTemplate>
            </asp:TemplateColumn>
        </Columns>
    </asp:DataGrid>

    <div id="Kurs hinzufügen">
    <fieldset class="login">
        <legend>Lehrveranstaltung anlegen</legend>
            <asp:ValidationSummary  id="valSum"
                              DisplayMode="BulletList"
                              runat="server"
                              HeaderText="You must enter a value in the following fields:"/>
    <p>Lehrveranstaltungsname:<br />

            <asp:TextBox ID="LehrveranstaltungsName" runat="server" Height="17px" Width="117px"></asp:TextBox>
            <asp:RequiredFieldValidator ID="LehrveranstaltungsNameRequiered" runat="server" ControlToValidate="LehrveranstaltungsName"
            ErrorMessage="Name der Lehrveranstaltung ist notwendeig." ToolTip="Name der Lehrveranstaltung ist notwendeig.">*</asp:RequiredFieldValidator>
    </p><p>Studiengang:<br />
            <asp:DropDownList runat="server" DataSourceID="DBStudiengaenge" id="Studiengang"
            DataTextField="Name" DataValueField="ID">
            </asp:DropDownList>
    </p><p>
            <asp:SqlDataSource ID="DBStudiengaenge" runat="server"
            ConnectionString="<%$ ConnectionStrings:DataBaseConnectionString %>"
            SelectCommand="SELECT * FROM [Studiengang]"
            InsertCommand= "INSERT INTO Lehrveranstaltung(Name, Studiengang, Beschreibung)
            VALUES (@valueLehrveranstaltungsName, @valueStudiengang, @valueDescription)"
            >
            <InsertParameters>
                <asp:FormParameter Name="valueLehrveranstaltungsName" formfield="LehrveranstaltungsName"/>
                <asp:FormParameter Name="valueStudiengang" FormField="Studiengang" Direction="Input" />
                <asp:FormParameter Name="valueDescription" FormField="Description"/>
            </InsertParameters>
            </asp:SqlDataSource>
    </p><p>Beschreibung:<br />
        <asp:TextBox ID="Description" runat="server" Height="70px" Width="400px" TextMode="multiline"> </asp:TextBox>

    </p><p>
    <br /><br />
            <asp:Button ID="LoginButton" runat="server" BackColor="#FFFBFF" BorderColor="Black"
            BorderStyle="Solid" BorderWidth="1px" CommandName="Lehrveranst"
                Font-Bold="True" Font-Names="Verdana"
            Font-Size="Small" ForeColor="#284775" Height="28px" Text="Lehrveranstalung anlegen"
            Width="200px" onclick="LoginButton_Click" />
    </p>
    </fieldset>
    </div>
</asp:Content>
Posted
Updated 9-Dec-10 23:29pm
v2

1 solution

Than you for your question. I had a similar problem like yours.

I have solved it like bellow.

XML
ParentControlname$NameOfTheControl


Thanks,
Mamun
 
Share this answer
 
Comments
stefan_01 10-Dec-10 6:48am    
Thanks, that was a good tip. I look at the generated Page and found out that the name was something like

ctl00$MainContent$LehrveranstaltungsName

The coorect form for me looks like:

<pre lang="xml"><asp:FormParameter Name="valueLehrveranstaltungsName" formfield="ctl00$MainContent$LehrveranstaltungsName"/>
<asp:FormParameter Name="valueStudiengang" FormField="ctl00$MainContent$Studiengang"/>
<asp:FormParameter Name="valueDescription" FormField="ctl00$MainContent$Description"/></pre>


Still the form isn't refreshed in the page. Do you also have a tip for that?

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900