Solved

ASP.Net DetailsView EditItemTemplate Question

Posted on 2008-06-15
1
1,598 Views
Last Modified: 2012-06-21
Hi Guys,
I'm using ASP.net + Access + VB.net.
I have a edit function in a detailsview, but I don't want to users to edit a field called "Username". However, if I use "readonly" for Username field, the update will not work! Error message says "at least one parameter has no value". But I don't have Username in my update SQL. I don't understand why. If I include Username in the edit view, everything is fine. Can anyone please help me? Thanks
the code is:
<%@ Page Language="VB" MasterPageFile="~/Admin/AdminMasterPage.master" AutoEventWireup="false" CodeFile="StudentDetail.aspx.vb" Inherits="Admin_StudentDetail2" title="Untitled Page" %>

<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">

                    &nbsp;

    <asp:DetailsView ID="DetailsView1" runat="server" AutoGenerateRows="False" BackColor="White"

        BorderColor="White" BorderStyle="Ridge" BorderWidth="2px" CellPadding="3" CellSpacing="1"

        DataSourceID="AccessDataSourceBasicInfo" GridLines="None" Height="50px" Width="288px">

        <FooterStyle BackColor="#C6C3C6" ForeColor="Black" />

        <EditRowStyle BackColor="#9471DE" Font-Bold="True" ForeColor="White" />

        <RowStyle BackColor="#DEDFDE" ForeColor="Black" />

        <PagerStyle BackColor="#C6C3C6" ForeColor="Black" HorizontalAlign="Right" />

        <Fields>

            <asp:BoundField DataField="Username" HeaderText="Username" SortExpression="Username"/>

            <asp:BoundField DataField="LastName" HeaderText="LastName" SortExpression="LastName" />

            <asp:BoundField DataField="FirstName" HeaderText="FirstName" SortExpression="FirstName" />

            <asp:TemplateField HeaderText="SchoolID" SortExpression="SchoolID">

                <EditItemTemplate>

                    <asp:DropDownList ID="DropDownSchoolID" runat="server" DataSourceID="AccessDataSourceSchool"

                        DataTextField="SchoolName" DataValueField="SchoolID" SelectedValue='<%# Bind("SchoolID") %>'>

                    </asp:DropDownList><asp:AccessDataSource ID="AccessDataSourceSchool" runat="server"

                        DataFile="~/App_Data/GLC.mdb" SelectCommand="SELECT [SchoolID], [SchoolName] FROM [Schools]">

                    </asp:AccessDataSource>

                </EditItemTemplate>

                <InsertItemTemplate>

                    <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("SchoolID") %>'></asp:TextBox>

                </InsertItemTemplate>

                <ItemTemplate>

                    <asp:Label ID="Label1" runat="server" Text='<%# Bind("SchoolID") %>'></asp:Label>

                </ItemTemplate>

            </asp:TemplateField>

            <asp:BoundField DataField="SchoolName" HeaderText="SchoolName" SortExpression="SchoolName" ReadOnly="True" />

            <asp:BoundField DataField="StudentID" HeaderText="StudentID" SortExpression="StudentID" />

            <asp:CommandField ShowEditButton="True" />

        </Fields>

        <HeaderStyle BackColor="#4A3C8C" Font-Bold="True" ForeColor="#E7E7FF" />

        <HeaderTemplate>

                    Basic Information

        </HeaderTemplate>

    </asp:DetailsView>

                    

     <asp:AccessDataSource ID="AccessDataSourceBasicInfo" runat="server" DataFile="~/App_Data/GLC.mdb" 

      SelectCommand="SELECT Students.Username, Students.StudentID, Students.SchoolID, Students.LastName, Students.FirstName, Schools.SchoolName FROM (Students INNER JOIN Schools ON Students.SchoolID = Schools.SchoolID) WHERE (Students.Username = @Username)" 

      UpdateCommand="UPDATE Students SET Students.StudentID = @StudentID, Students.SchoolID = @SchoolID, Students.LastName = @LastName, Students.FirstName = @FirstName WHERE (Students.Username = @Username)" >

      <UpdateParameters>

       

       

       <asp:Parameter Name="StudentID" Type="String"/>

       <asp:Parameter Name="SchoolID" Type="int16"/>

       <asp:Parameter Name="LastName" Type="String"/>

       <asp:Parameter Name="FirstName" Type="String"/>

      

      </UpdateParameters>

      

    

    

    <SelectParameters>

       <asp:QUERYSTRINGPARAMETER DefaultValue="0" Name="Students.Username" QueryStringField="ID" />

    </SelectParameters>

    </asp:AccessDataSource>

</asp:Content>

Open in new window

0
Comment
Question by:Robertyue
1 Comment
 
LVL 14

Accepted Solution

by:
Dustin Hopkins earned 250 total points
ID: 21790210
Try setting username to readonly, and also set the datakeynames value to username. Your sql statement does require the username parameter... (Students.Username = @Username)"
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

One of the pain points with developing AJAX, JavaScript, JQuery, and other client-side behaviors is that JavaScript doesn’t allow for cross domain request for pulling content. For example, JavaScript code on www.johnchapman.name could not pull conte…
I recently went through the process of creating a Calendar Control of events with the basis of using a database to keep track of the dates that are selectable, one requirement was to have the selected date pop-up in a simple lightbox.  At first this…
Migrating to Microsoft Office 365 is becoming increasingly popular for organizations both large and small. If you have made the leap to Microsoft’s cloud platform, you know that you will need to create a corporate email signature for your Office 365…
Internet Business Fax to Email Made Easy - With  eFax Corporate (http://www.enterprise.efax.com), you'll receive a dedicated online fax number, which is used the same way as a typical analog fax number. You'll receive secure faxes in your email, f…

912 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

17 Experts available now in Live!

Get 1:1 Help Now