어쩌면 다시 시작해야합니다. Thx는 DataGridview에 대한 유용한 링크를 제공하지만 실제로 가져올 필요는 없습니다.LINQ 쿼리가 저장된 데이터를 검색하지 않습니다.
문제의 본질은 이것이다 : 나는이 일을 위해이 방법을 사용 을 - 새 레코드 을 추가 할 때 데이터베이스에서 필요한 데이터를 얻을 - 나 '후 데이터베이스에서 필요한 데이터를 얻을 수 ve 업데이트 기록
public void refreshReservationDetail()
{
_oReservationDetail = (from rd in _oReservation.tblReservationDetails
where rd.ReservationID == _oReservationObject.ID
select rd).ToList();
}
새 레코드를 추가하면 새 데이터가 저장되고 DataGridview에로드됩니다. 그래서 이것은 잘 작동합니다.
기존의 레코드 (이미 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();
}
당신은 행이 갱신 된 후 그리드를 새로 고침 할 필요가 – abatishchev
이 도움이 될해야합니다 http://stackoverflow.com/questions/253843/simple-datagridview-refresh-question – TheBoyan
당신이 업데이트 한 후'refreshReservationDetail()' 방법을 불렀다/데이터 삽입하기 ??? –