开发者

Update SQL database with values from text boxes

开发者 https://www.devze.com 2023-01-02 05:30 出处:网络
Here\'s what I have. User enters values into text boxes (personal information etc.) and then presses a save changes button. The values in these text boxes get stored in an SQL database.

Here's what I have. User enters values into text boxes (personal information etc.) and then presses a save changes button. The values in these text boxes get stored in an SQL database.

The problem I have is that when updating the database using the values from the text boxes, the page refreshes and the values in the text boxes are lost (or rather they return to the values that are alread开发者_如何学Pythony in the database as the data from the database is loaded into the text boxes on Page_Load).

When I update the database using values stored in variables it all works fine. What is the best way to update with the values from the text boxes?


Use asp:FormView and your bind your asp:TextBox with columns you need.

For example:

<asp:FormView runat="server" ID="FormView1" DataSourceID="SqlDataSource1">
    <InsertItemTemplate>
        <table>
            <tr>
                <td>
                    <asp:TextBox runat="server" ID="txtFoo" Text='<%# Bind("foo") %>' />
                </td>
            </tr>
            <tr>
                <td>
                    <asp:TextBox runat="server" ID="txtBar" Text='<%# Bind("bar") %>' />
                </td>
            </tr>
        </table>
    </InsertItemTemplate>
</asp:FormView>
<asp:SqlDataSource runat="server" ID="SqlDataSource1" InsertCommand="INSERT INTO table1 (foo, bar) VALUES (@foo, @bar)" ConnectionString="<%$ ConnectionStrings:MyConnStringNameFromWebConfig%>">
     <InsertParameters>
         <asp:FormParameter Name="foo" FormField="foo" DbType="String" />
         <asp:FormParameter Name="bar" FormField="bar" DbType="String" />
     </InsertParameters>
</asp:SqlDataSource>

asp:FormView has a number of strange behavior moments, I will be happy to share my experience, please fill free to ask your questions


It sounds like that you are loading the data in Page_Load without checking if the page is post back. If this is the case try the following:

protected void Page_Load(object sender, EventArgs e)
{
    if (!Page.IsPostBack)
    {
        BindYouDataFromDB();
    }
}
0

精彩评论

暂无评论...
验证码 换一张
取 消