代码之家  ›  专栏  ›  技术社区  ›  Sir Graystar

使用文本框中的值更新SQL数据库

  •  1
  • Sir Graystar  · 技术社区  · 14 年前

    这是我的东西。用户将值输入文本框(个人信息等),然后按“保存更改”按钮。这些文本框中的值存储在SQL数据库中。

    我的问题是,当使用文本框中的值更新数据库时,页面将刷新,文本框中的值将丢失(或者更确切地说,当数据库中的数据加载到页面加载的文本框中时,它们将返回到数据库中已有的值)。

    当我使用存储在变量中的值更新数据库时,一切正常。使用文本框中的值更新的最佳方法是什么?

    2 回复  |  直到 13 年前
        1
  •  1
  •   abatishchev Marc Gravell    14 年前

    使用 asp:FormView 你的束缚 asp:TextBox 用你需要的列。

    例如:

    <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:FLUVIEW 有一些奇怪的行为时刻,我很乐意分享我的经验,请随时填写你的问题

        2
  •  1
  •   Thea Ray Suelzer    14 年前

    听起来您正在加载页面中的数据,而不检查页面是否回发。如果是这种情况,请尝试以下操作:

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