Curious Developer
Curious Developer

Reputation: 101

error in Update command

in my project(Asp.net website using C#), I have a formview that is connected to a sqlserevrDataSource. because Of using specify custom sql statement for sqlDataSource Configuration, I can't use Advanced button for active Insert,Update,Delete . Now for adding update feature for my datasource I add UpdateCommand in my source code manually, but it had an error that said :

Invalid column name 'Email'.
Invalid column name 'IsApproved'.
Invalid column name 'IsLockedOut'.
Invalid column name 'LastLockoutDate'.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

the code:

<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPageAdmin.master" AutoEventWireup="true" CodeFile="edit-user.aspx.cs" Inherits="edit_user" %>

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

        <asp:FormView ID="FormView1" runat="server" DefaultMode="Edit" DataSourceID="SqlDataSource1">
            <EditItemTemplate>
                UserName:
                <asp:TextBox ID="UserNameTextBox" runat="server" Text='<%# Bind("UserName") %>' />
                <br />
                LastActivityDate:
                <asp:TextBox ID="LastActivityDateTextBox" runat="server" Text='<%# Bind("LastActivityDate") %>' />
                <br />
                Email:
                <asp:TextBox ID="EmailTextBox" runat="server" Text='<%# Bind("Email") %>' />
                <br />
                IsApproved:
                <asp:CheckBox ID="IsApprovedCheckBox" runat="server" Checked='<%# Bind("IsApproved") %>' />
                <br />
                IsLockedOut:
                <asp:CheckBox ID="IsLockedOutCheckBox" runat="server" Checked='<%# Bind("IsLockedOut") %>' />
                <br />
                LastLockoutDate:
                <asp:TextBox ID="LastLockoutDateTextBox" runat="server" Text='<%# Bind("LastLockoutDate") %>' />
                <br />
                UserId:
                <asp:TextBox ID="UserIdTextBox" runat="server" Text='<%# Bind("UserId") %>' />
                <br />
                <asp:LinkButton ID="UpdateButton" runat="server" CausesValidation="True" CommandName="Update" Text="Update" />
                &nbsp;<asp:LinkButton ID="UpdateCancelButton" runat="server" CausesValidation="False" CommandName="Cancel" Text="Cancel" />
            </EditItemTemplate>
            <InsertItemTemplate>
                UserName:
                <asp:TextBox ID="UserNameTextBox" runat="server" Text='<%# Bind("UserName") %>' />
                <br />
                LastActivityDate:
                <asp:TextBox ID="LastActivityDateTextBox" runat="server" Text='<%# Bind("LastActivityDate") %>' />
                <br />
                Email:
                <asp:TextBox ID="EmailTextBox" runat="server" Text='<%# Bind("Email") %>' />
                <br />
                IsApproved:
                <asp:CheckBox ID="IsApprovedCheckBox" runat="server" Checked='<%# Bind("IsApproved") %>' />
                <br />
                IsLockedOut:
                <asp:CheckBox ID="IsLockedOutCheckBox" runat="server" Checked='<%# Bind("IsLockedOut") %>' />
                <br />
                LastLockoutDate:
                <asp:TextBox ID="LastLockoutDateTextBox" runat="server" Text='<%# Bind("LastLockoutDate") %>' />
                <br />
                UserId:
                <asp:TextBox ID="UserIdTextBox" runat="server" Text='<%# Bind("UserId") %>' />
                <br />
                <asp:LinkButton ID="InsertButton" runat="server" CausesValidation="True" CommandName="Insert" Text="Insert" />
                &nbsp;<asp:LinkButton ID="InsertCancelButton" runat="server" CausesValidation="False" CommandName="Cancel" Text="Cancel" />
            </InsertItemTemplate>
            <ItemTemplate>
                UserName:
                <asp:Label ID="UserNameLabel" runat="server" Text='<%# Bind("UserName") %>' />
                <br />
                LastActivityDate:
                <asp:Label ID="LastActivityDateLabel" runat="server" Text='<%# Bind("LastActivityDate") %>' />
                <br />
                Email:
                <asp:Label ID="EmailLabel" runat="server" Text='<%# Bind("Email") %>' />
                <br />
                IsApproved:
                <asp:CheckBox ID="IsApprovedCheckBox" runat="server" Checked='<%# Bind("IsApproved") %>' Enabled="false" />
                <br />
                IsLockedOut:
                <asp:CheckBox ID="IsLockedOutCheckBox" runat="server" Checked='<%# Bind("IsLockedOut") %>' Enabled="false" />
                <br />
                LastLockoutDate:
                <asp:Label ID="LastLockoutDateLabel" runat="server" Text='<%# Bind("LastLockoutDate") %>' />
                <br />
                UserId:
                <asp:Label ID="UserIdLabel" runat="server" Text='<%# Bind("UserId") %>' />
                <br />

            </ItemTemplate>
        </asp:FormView>

    <asp:SqlDataSource ID="SqlDataSource1" runat="server" 

    ConnectionString="<%$ ConnectionStrings:akhbarrConnectionString %>" 
    SelectCommand="SELECT aspnet_Users.UserName, aspnet_Users.LastActivityDate, aspnet_Membership.Email, aspnet_Membership.IsApproved, aspnet_Membership.IsLockedOut, aspnet_Membership.LastLockoutDate, aspnet_Users.UserId FROM aspnet_Users INNER JOIN aspnet_Membership ON aspnet_Membership.UserId = aspnet_Users.UserId WHERE (aspnet_Users.UserName = @UserName)"
        updatecommand="update [aspnet_Users] set [UserName] =@UserName , [LastActivityDate]= @LastActivityDate , [Email]= @Email , [IsApproved] = @IsApproved , [IsLockedOut] = @IsLockedOut , [LastLockoutDate] = @LastLockoutDate , [UserId]= @UserId from aspnet_Users INNER JOIN aspnet_Membership ON aspnet_Membership.UserId = aspnet_Users.UserId">

        <UpdateParameters>
            <asp:Parameter Name="UserName" Type="string" />
            <asp:Parameter Name="LastActivityDate" Type="DateTime" />
            <asp:Parameter Name="Email" Type="string" />
            <asp:Parameter Name="IsApproved" Type="Boolean" />
            <asp:Parameter Name="IsLockedOut" Type="Boolean" />
            <asp:Parameter Name="LastLockoutDate" Type="DateTime" />
            <asp:Parameter Name="UserId" Type="String" />


        </UpdateParameters>
         <SelectParameters>
            <asp:QueryStringParameter DefaultValue="0" Name="UserName" QueryStringField="UserName" />
        </SelectParameters>
        </asp:SqlDataSource>

</asp:Content>

Upvotes: 0

Views: 138

Answers (2)

Vikas Rana
Vikas Rana

Reputation: 1999

You can't update two table by this query. As I understand your

'Email',
'IsApproved'.
'IsLockedOut'.
'LastLockoutDate'

column are belong to table aspnet_Membership and you are using query

update [aspnet_Users] set [UserName] =@UserName , [LastActivityDate]= @LastActivityDate ,   
[Email]= @Email , [IsApproved] = @IsApproved , [IsLockedOut] = @IsLockedOut , 
[LastLockoutDate] = @LastLockoutDate , [UserId]= @UserId from aspnet_Users INNER JOIN  
aspnet_Membership ON aspnet_Membership.UserId = aspnet_Users.UserId

it only update column of table aspnet_Users.

Edit -

 update [aspnet_Users] set [UserName] =@UserName , [LastActivityDate]=  
 @LastActivityDate Where [UserId]=@userId 

and

update [aspnet_Membership] set [Email]= @Email , [IsApproved] = @IsApproved , 
[IsLockedOut] =  @IsLockedOut , [LastLockoutDate] = @LastLockoutDate where UserId= @UserId

Upvotes: 1

Ehsan
Ehsan

Reputation: 32661

This error simply means that you are trying to run your command on some datatable that doesn't contains these columns. You need to make sure that your update command is correct. Copy the command that you are trying to run and run in sql server management studio directly against your database.

Upvotes: 2

Related Questions