我在使用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绑定与它有关,但我不知道如何修复它。
任何帮助将不胜感激!
答案 0 :(得分:0)
你可以在OleDbCommand上单步执行断点并发布
的结果updatesql
在更新命令运行之前?