0

I am a beginner in asp.net. I want to update the data in the database. But nothing happens. I used google and found that the problem can be solved through the ObjectDataSource, but I'm not sure.

 <asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
    SelectCommand="SELECT * FROM [content]" UpdateCommand="UPDATE [content] SET [title] = @title, [article] = @article WHERE [id] = @id">
    <UpdateParameters>
        <asp:ControlParameter ControlID="txtTitle" Name="title" Type="String" PropertyName="Text" />
        <asp:ControlParameter ControlID="txtArticle" Name="article" Type="String" PropertyName="Text" />
        <asp:Parameter Name="id" Type="Int32" />
    </UpdateParameters>
</asp:SqlDataSource>
<asp:DataList ID="DataList2" runat="server" DataKeyField="id" DataSourceID="SqlDataSource1">
    <ItemTemplate>
        <asp:TextBox ID="txtTitle" runat="server" Text='<%# Eval("title") %>'></asp:TextBox><br>
        <asp:TextBox ID="txtArticle" runat="server" Text='<%# Eval("article") %>'></asp:TextBox><br>
        <asp:Button ID="Button1" runat="server" Text="go" />
    </ItemTemplate>
</asp:DataList>

1 Answer 1

0

You can use SqlDatasource without problems here and you even won't have to bother about UpdateParameters - just add an EditItemTemplate to your GridView and Bind() your columns:

<asp:SqlDataSource ID="SqlDataSource2" runat="server"
    ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
    SelectCommand="SELECT * FROM [content]"
    UpdateCommand="UPDATE [content] SET [title] = @title, [article] = @article WHERE [id] = @id" />

<asp:DataList ID="DataList2" runat="server"
  DataKeyField="id" DataSourceID="SqlDataSource1"
  AutoGenerateColumns="false" AutoGenerateEditButton="true">

    <ItemTemplate>
        <asp:Label ID="lblTitle" runat="server" Text='<%# Eval("title") %>' /><br/>
        <asp:Lable ID="lblArticle" runat="server" Text='<%# Eval("article") %>' /><br/>
    </ItemTemplate>

    <EditItemTemplate>
        <asp:TextBox ID="txtTitle" runat="server" Text='<%# Bind("title") %>' /><br/>
        <asp:TextBox ID="txtArticle" runat="server" Text='<%# Bind("article") %>' /><br/>
    </EditItemTemplate>

Note that I did set AutoGenerateEditButton to true and AutoGenerateColumns to false.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.