나는 사용자 지정 저장 프로 시저를 사용하여 내 데이터베이스에서 데이터를 검색 해요 :왜 SubmitChanges가 작동하지 않습니까?
tbTextBox.Text = db.getSettingValue("PropertyName").First().Value;
이 부분이 완전히 잘 작동하고 반복 것 (데시벨은 FormLoad
이벤트에서 초기화 글로벌 DataClasses
객체이다) 다음 코드 루프 (타이머 30 초 간격)은 사용자가 텍스트 박스의 값을 변경하는 경우
가 발동된다
private void tbTextBox_TextChanged(object sender, EventArgs e)
{
if (tbTextBox.Text != db.getSettingValue("PropertyName").First().Value)
{
db.Settings.Where(n => n.Name == "PropertyName").First().Value = tbTextBox.Text;
db.SubmitChanges();
}
}
,
submitChanges
전에 개체를 만들고 값을 변경하면 동일한 결과가 발생합니다. 디버깅을했는데 내 IF 문을 통과하지 않는 것 같지 않습니다.)
왜 작동하지 않습니까? 예외는 없습니다 ... SQL Server Management Studio를 사용하여 설정 테이블을 쿼리하면 데이터베이스에 변경 사항이 없습니다.
EDIT1 : 나는 제대로 디버깅하기 위해 작은 단계에 코드를 분리 한
db.Settings.Where(n => n.Name == "AvailablePeriods").First().Value = tbPeriods.Text;
var a = db.Settings.Where(n => n.Name == "AvailablePeriods");
var b = a.First();
var c = b.Value;
b.Value = tbPeriods.Text;
var d = db.GetChangeSet();
db.SubmitChanges();
. 모든 것이 잘 작동하지만 ... Changeset는 업데이트를 반환하지 않습니다. 다음 단계에서는 "첨부"를 제안대로 사용해 보겠습니다.
EDIT2 : PK를 추가하면 문제가 해결되었습니다. 모든 것이 이제는 매력으로 작동합니다.
수업은 배운 - 너무 많이 자신을 신뢰하지해야합니다 :)
datacontext 로그의 내용은 무엇입니까? – leppie
내 IF 문을 통과하지 못하는 것 같아요. '- 이벤트 처리기가 실행 중이고 상태가 평가되고 있는지 여부를 디버깅하고 확인 했습니까? –
그것은 싫어 ... 오타 - 미안. –