المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : Hierarchical Update Problem.



C# Programming
09-16-2009, 07:42 AM
Hi
i have 2 tables :
Persons (master)
Images (detail)
each person can multiple images. i'm using tableAdapterManager to accomplish this and here is my code in my DataManager class :

public bool SavePersonWithImages(MyDataSet DataSet)
{
bool saved = false;

if (DataSet.GetChanges() != null)
{
try
{
MyDataSetTableAdapters.PersonsTableAdapter personAdapter = new MyDataSetTableAdapters.PersonsTableAdapter();
MyDataSetTableAdapters.ImagesTableAdapter imageAdapter = new MyDataSetTableAdapters.ImagesTableAdapter();
MyDataSetTableAdapters.TableAdapterManager manager = new MyDataSetTableAdapters.TableAdapterManager();

manager.PersonsTableAdapter = personAdapter;
manager.ImagesTableAdapter = imageAdapter;
int rowAffected = manager.UpdateAll(DataSet);
saved = (rowAffected > 0);
DataSet.AcceptChanges();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error);
DataSet.RejectChanges();
}

}
return saved;
}

the insert & delete works fine, but my problem when user edit the image with replace that image with new one, it's works successfully, but when i close the form and open it again, it's don't display image! here is my edit button code :

private void barBtnEditPerson_ItemClick(object sender, ItemClickEventArgs e)
{
if (this.personBindingSource.Count > 0)
{
MyDataSet.PersonRow personCurRow = (MyDataSet.PersonRow)((DataRowView)this.personBindingSource.Current).Row;
FrmZamin frm = new FrmZamin(personCurRow, this.amlakDataSet);
personCurRow.BeginEdit();
if (frm.ShowDialog() == DialogResult.OK)
{
this._frmLoading = new FrmWait("Saving data ...");
personCurRow.EndEdit();
DataManager dm = new DataManager();
dm.SavePersonWithImages(this.myDataSet);
this._frmLoading.Close();
this.backgroundWorker1.RunWorkerAsync();
}
else
{
personCurRow.CancelEdit();
}
this.myDataSet.Images.Clear();
}
}

can anybody know where does my problem and how to solve it ?
Note 1 : my database is access 2007
Note 2 : my images dataTable does not have any relation with persons dataTable or some other tables (in my DataSet Designer)

thanks in advance