在gridview自动生成的编辑控件中获取textbox.text

时间:2014-04-02 15:48:27

标签: c# asp.net gridview textbox aspxgridview

我在使用gridview中的自动生成的编辑按钮时遇到问题。

我正在尝试从编辑文本框中获取用户名并将其插入我的数据库,如下所示:

<asp:TemplateField HeaderText="User Name">
<ItemTemplate>
    <asp:Label ID="UserNamelbl" runat="server" Text='<%# Eval("Username") %>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="UserNameEdit" Width="100" Text='<%# Eval("Username") %>' Enabled="true" runat="server"></asp:TextBox></EditItemTemplate>
</asp:TemplateField>

更新点击时出现的##方法。

    protected void UsersGridView_RowUpdating(object sender, GridViewUpdateEventArgs e)
{     

    GridViewRow row = UsersGridview.Rows[e.RowIndex];
    Connect c = new Connect("EdenSiteDB.accdb");
    string updatesql = "UPDATE Users Set Username= '" + ((TextBox)row.FindControl("UserNameEdit")).Text + "' , Email= '" + ((TextBox)row.FindControl("EmailEdit")).Text + "' , Admin= " + (((CheckBox)row.FindControl("IsAdminBoxEdit")).Checked).ToString() + " WHERE UserID= " + Session["UserId"].ToString() + ";";
    OleDbCommand updatecmm = new OleDbCommand(updatesql);
    c.TakeAction(updatecmm);

    string usersql = "SELECT * FROM Users;";
    dt = c.MakeConnection(usersql, "Users");
    UsersGridview.EditIndex = -1;
    DataBind();
}

运行它时是updatesql:

updatesql = "UPDATE Users Set Username= 'edmx0' , Email= 'edmx0.et@gmail.com' , Admin= True WHERE UserID= 17;"

这些是上一个值。不是我刚进入的那些新品。

但是当我调试它时,我的sql不断提出初始用户名,而不是我刚刚输入的用户名。 我认为那时我的gridview绑定与它有关,但我不知道如何修复它。

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

你可以在OleDbCommand上单步执行断点并发布

的结果
updatesql
在更新命令运行之前