PDA

View Full Version : This row has been removed from a table and does not have any data. BeginEdit() will allow creation..



akhavan_a
پنج شنبه 16 دی 1389, 10:59 صبح
سلام من یک خطای عجیب توی برنامم دارم :
من می خوام دو تا ردیف رو در یک datasource جابه جا کنم . و برای اینکار مجبورم row مورد نظر را remove کنم و بعد در index جدید insert کنم ولی برنامه فقط اوو ردیف رو پاک می کنه و یک row خالی اضافه میکند . وقتی trace کردم در خط insert این exception را دارم . باید چی کار کنم . لطفا راهنماییم کنید :


privatevoid janusgrid_DragDrop(object sender, DragEventArgs e)
{
if (e.Effect == DragDropEffects.Move)
{
DataRow rowToMove = dtDataSource.Rows[nrow];
dtDataSource.Rows.RemoveAt(nrow);
dtDataSource.AcceptChanges();
dtDataSource.Rows[endRow].BeginEdit();
dtDataSource.Rows.InsertAt(rowToMove, endRow);
dtDataSource.Rows[endRow].EndEdit();
janus_grid.RetrieveStructure();
}

akhavan_a
یک شنبه 19 دی 1389, 12:49 عصر
مشکل رو متوجه شدم وقتی DataRow rowToMove = dtDataSource.Rows[nrow]; را می نویسیم یعنی هر دو به یک جا در حافظه اشاره می کنند و وقتی dtDataSource.Rows[nrow را delete می کنیم ، خوب هر دو پاک می شوند....ولی الان سوالم اینه که چه راه حلی وجود داره برای اینکه هر ردو به دو جای مختلف در حافظه اشاره کنند؟

akhavan_a
یک شنبه 19 دی 1389, 13:00 عصر
مشکل حل شد :)