0

Hi I am trying to use a gridview to display information, providing update/delete functions. But I'm keeping getting error messages.

This is the code:

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">

    <asp:GridView ID="GridView2" runat="server" AllowSorting="True"  
        AutoGenerateColumns="False" AutoGenerateDeleteButton="True" 
        AutoGenerateEditButton="True" DataSourceID="SqlDataSource1" DataKeyNames="name, number">
        <Columns>
            <asp:BoundField DataField="name" HeaderText="name" SortExpression="name" />
            <asp:BoundField DataField="number" HeaderText="number" 
                SortExpression="number" />
        </Columns>
    </asp:GridView>
    <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
        ConnectionString="<%$ ConnectionStrings:pbdbConnectionString %>" 

        SelectCommand="SELECT * FROM [contact]" 
        ConflictDetection="CompareAllValues" 
        
        InsertCommand="INSERT INTO [contact] ([name], [number]) VALUES (@name, @number)" 
        DeleteCommand="DELETE FROM [contact] WHERE name=@name AND number=@number"
        UpdateCommand="UPDATE [contact] SET name=@name, number=@number WHERE name=@name AND number=@number"
        
        OldValuesParameterFormatString="original_{0}" >
        <DeleteParameters>
            <asp:Parameter Name="name" Type="String" />
            <asp:Parameter Name="number" Type="String" />
        </DeleteParameters>
        <InsertParameters>
            <asp:Parameter Name="name" Type="String" />
            <asp:Parameter Name="number" Type="String" />
        </InsertParameters>


        </asp:SqlDataSource>

</asp:Content>

Update error message:

You have specified that your update command compares all values on SqlDataSource 'SqlDataSource1', but the dictionary passed in for oldValues is empty. Pass in a valid dictionary for update or change your mode to OverwriteChanges.

Delete error message:

You have specified that your delete command compares all values on SqlDataSource 'SqlDataSource1', but the dictionary passed in for values is empty. Pass in a valid dictionary for delete or change your mode to OverwriteChanges.

Please advise. Thank you.

2
Contributors
2
Replies
4
Views
6 Years
Discussion Span
Last Post by __avd
0

OK now when I change "ConflictDetection="CompareAllValues" to ConflictDetection="OverwriteChanges", I no longer get the error, but delete and update doesn't seem to work at all, which means, after clicking delete, the data is still there.

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.