Reputation: 101
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" />
<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" />
<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
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
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