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>
NikolayS
  • 73
  • 1
  • 6

1 Answers1

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.

Filburt
  • 17,626
  • 12
  • 64
  • 115