Re: Дерево C# новые узлы?
От: webinc  
Дата: 27.05.10 03:13
Оценка:
Пока сделал так

var dtup = dataSet.pePrograms.GetChanges();
if (dtup != null)
{
    var chRows = new Hashtable();

    // Сохраняем старые ID
    foreach (DataRow row in dtup.Rows)
        chRows.Add(row.GetHashCode(), row["Program_id"]);

    peProgramsTableAdapter.Update((DataSet.peProgramsDataTable)dtup);
    dataSet.AcceptChanges();

    /* Обновляем Parrent_id изменившихся ID */
    dtup.AcceptChanges();
    foreach (DataRow row in dtup.Rows)
    {
        var oldId = (int)chRows[row.GetHashCode()];

        foreach (DataRow chRow in dtup.Rows)
            if (chRow["Parrent_id"].Equals(oldId))
                chRow["Parrent_id"] = row["Program_id"];
    }
    var reldtup = dtup.GetChanges();
    if (reldtup != null) peProgramsTableAdapter.Update((DataSet.peProgramsDataTable)reldtup);
    dtup.AcceptChanges();

    peProgramsTableAdapter.Fill(dataSet.pePrograms);
}


Работает ... но как то не нравится
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.