【发布时间】:2014-04-02 15:48:26
【问题描述】:
您好,我在使用 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>
更新点击时发生的c#方法。
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 绑定有关,但我不知道如何修复它。
任何帮助将不胜感激!
【问题讨论】:
标签: c# asp.net gridview textbox aspxgridview