Привет, ребята, я работаю с пользователями GridView Database Upade, и у меня проблема с моей строкой обновления. Она сообщает мне, когда я нажимаю на обновление, строка обновляется успешно, но на самом деле не обновляет ее :(
Коды:
1 Asp.net(OleDB)
protected void AdminBook_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
try
{
using (OleDbConnection sqlCon = new OleDbConnection(connectionStr))
{
sqlCon.Open();
string query = "UPDATE Users SET FirstName=@FirstName,LastName=@LastName,UserPass=@UserPass,Gender=@Gender,Birthday=@Birthday,Email=@Email WHERE UserID=@id";
OleDbCommand sqlCmd = new OleDbCommand(query, sqlCon);
sqlCmd.Parameters.AddWithValue("@FirstName", (AdminBook.Rows[e.RowIndex].FindControl("txtFirstName") as TextBox).Text.Trim());
sqlCmd.Parameters.AddWithValue("@LastName", (AdminBook.Rows[e.RowIndex].FindControl("txtLastName") as TextBox).Text.Trim());
sqlCmd.Parameters.AddWithValue("@UserPass", (AdminBook.Rows[e.RowIndex].FindControl("txtUserPass") as TextBox).Text.Trim());
sqlCmd.Parameters.AddWithValue("@Gender", (AdminBook.Rows[e.RowIndex].FindControl("txtGender") as TextBox).Text.Trim());
sqlCmd.Parameters.AddWithValue("@Birthday", (AdminBook.Rows[e.RowIndex].FindControl("txtBirthday") as TextBox).Text.Trim());
sqlCmd.Parameters.AddWithValue("@Email", (AdminBook.Rows[e.RowIndex].FindControl("txtEmail") as TextBox).Text.Trim());
sqlCmd.Parameters.AddWithValue("@UserName", (AdminBook.Rows[e.RowIndex].FindControl("txtUserName") as TextBox).Text.Trim());
sqlCmd.Parameters.AddWithValue("@id", Convert.ToInt32(AdminBook.DataKeys[e.RowIndex].Value.ToString()));
sqlCmd.ExecuteNonQuery();
AdminBook.EditIndex = -1;
PopulateGridView();
lblSuccessMessage.Text = "עריכת הנתונים התבצעה בהצלחה";
lblErrorMessage.Text = "";
}
}
catch (Exception ex)
{
lblSuccessMessage.Text = "";
lblErrorMessage.Text = ex.Message;
}
}
2 HTML (очень короткий)
<asp:GridView ID="AdminBook" runat="server" AutoGenerateColumns="False"
ShowFooter="True" DataKeyNames="UserID"
ShowHeaderWhenEmpty="True"
OnRowCommand="AdminBook_RowCommand" OnRowEditing="AdminBook_RowEditing" OnRowCancelingEdit="AdminBook_RowCancelingEdit"
OnRowUpdating="AdminBook_RowUpdating" OnRowDeleting="AdminBook_RowDeleting"
BackColor="White" BorderColor="#999999" BorderStyle="Solid"
BorderWidth="1px" CellPadding="3" ForeColor="Black" GridLines="Vertical">
Представьте, что вы видите это: Здесь вы можете видеть, что он показывает сообщение об успешном завершении
Пожалуйста, помогите мне... Потому что он делает это успешно, но не обновляет базу данных :(
@UserName
кажется нигде не назначенным, можете ли вы подтвердить, какие значения хранятся в массивеcmd.Parameters
? Поскольку вы используетеOleDbCommand
, важен порядок параметров, а не имя параметра. - person Tetsuya Yamamoto   schedule 03.12.2018