【发布时间】:2012-01-07 23:10:28
【问题描述】:
也许我需要重新开始。感谢 datagridview 的有用链接,但我真的不需要提出来。
问题的本质是这样的:我用这个方法做两件事: - 添加新记录时从数据库中获取必要的数据 - 在我更新记录后从数据库中获取必要的数据
public void refreshReservationDetail()
{
_oReservationDetail = (from rd in _oReservation.tblReservationDetails
where rd.ReservationID == _oReservationObject.ID
select rd).ToList();
}
当我添加新记录时,新数据将保存并加载到 datagridview 中。所以这很好用。
当我更新现有记录(已显示在 datagridview 中)时,更改的内容也被正确保存,但上面的方法没有给我保存的数据,但仍然是旧数据。怎么会?
我在这里保存我的数据
//frmReservationDetail
public event dRefresh SavedActivity;
private void btnOk_Click(object sender, EventArgs e)
{
_oReservationDetail.ReservationDetailData.ReservationID = _oReservationDetail.ReservationObjectData.ID;
_oReservationDetail.ReservationDetailData.StartTime = Convert.ToDateTime(_oReservationDetail.ReservationObjectData.StartTime.Value.ToString("dd/MM/yyyy") + " " + _oDateTime[cboStartTime.getSelectedID()]);
_oReservationDetail.ReservationDetailData.EndTime = Convert.ToDateTime(_oReservationDetail.ReservationObjectData.StartTime.Value.ToString("dd/MM/yyyy") + " " + _oDateTime[cboEndTime.getSelectedID()]);
if (this.cboLanguage.SelectedItem != null)
{
_oReservationDetail.ReservationDetailData.LanguageID = this.cboLanguage.getSelectedID();
}
else
_oReservationDetail.ReservationDetailData.LanguageID = null;
if (this.cboTargetgroup.SelectedItem != null)
{
_oReservationDetail.ReservationDetailData.TargetgroupID = this.cboTargetgroup.getSelectedID();
}
else
_oReservationDetail.ReservationDetailData.TargetgroupID = null;
if (this.cboExcursion.SelectedItem != null)
{
_oReservationDetail.ReservationDetailData.ExcursionID = this.cboExcursion.getSelectedID();
}
else
_oReservationDetail.ReservationDetailData.ExcursionID = null;
_oReservationDetail.ReservationDetailData.Participants = int.Parse(this.txtParticipants.Text);
_oReservationDetail.ReservationDetailData.Leaders = int.Parse(this.txtLeaders.Text);
_oReservationDetail.ReservationDetailData.Remarks = this.txtRemarks.Text;
_oReservationDetail.save();
if(SavedActivity != null)
SavedActivity();
this.Close();
}
//clsReservationDetail
public void save()
{
int i = _oReservationDetail.ID;
if (_oReservationDetail.ID == 0)
{
_oReservation.tblReservationDetails.InsertOnSubmit(_oReservationDetail);
_oReservation.SubmitChanges();
}
_oReservation.SubmitChanges();
}
【问题讨论】:
-
行更新后需要刷新网格
-
这应该会有所帮助:stackoverflow.com/questions/253843/…
-
更新/插入数据后你有没有调用
refreshReservationDetail()方法??? -
能否请您显示保存更新的代码?
-
问题不在于保存。我确信它工作得很好。我只是想知道为什么 _oReservationDetail 中的数据没有刷新,尽管我要求再次运行查询。
标签: c# .net linq datagridview