Эй, ребята, у меня есть GridView ASP.NET, привязанный к DataView, который содержит DataTable. Я не использую DataAdapter.Обновление DataTable?
Я хочу, чтобы обновить строку в моей DataTable, поэтому я делаю это:
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
DataView dv = (DataView)Session["My_DataTable"];
DataTable dt = dv.Table;
int rowIndex = GridView1.Rows[e.RowIndex];
dt.Rows[rowIndex]["FirstName"] = thenewfirstname;
dt.Rows[rowIndex]["MI"] = thenewmi;
dt.Rows[rowIndex]["LastName"] =thenewlastname;
Session["My_DataTable"] = dv;
//Reset the edit index.
GridView1.EditIndex = -1;
//Bind data to the GridView control.
GridView1.DataSource = Session["My_DataTable"];
GridView1.DataBind();
}
Основная DataView/DataTable изменяется правильно, но GridView содержит как старые строки перед редактированием, и новый строка после редактирования (т. е. добавляет дополнительную строку с новыми изменениями!).
Например, если мы имеем:
...
Sammy S Samerson
...
и изменить его на Sammy E Samerson
GridView говорит:
...
Sammy S Samerson
Sammy E Samerson
...
Как это исправить, то, что я сделал не так?
Вы уверены, что Сэмми E не перезаписывать другую запись? или ваш общий счетчик строк также увеличился? – Jeroen
Я уверен, что запись не была перезаписана, а количество строк увеличено на 1. –