2010-11-23 3 views
0

저는 우리가 보유한 SQL Server 데이터베이스에 대한 프런트 엔드 (추가, 편집, 제거) 역할을하는 비교적 간단한 Windows Form 응용 프로그램을 작성했습니다. 나는 테이블의 각 열에 대해 TextBox를 가지고 ListBox는 모든 항목을 (이름과 성으로) 나열합니다. TextBox는 ListBox에서 선택된 항목의 데이터로 채워집니다.LINQ 및 BindingSource를 사용하여 데이터 업데이트

BindingSource를 사용하여 DB의 항목을 업데이트하는 데 어려움이 있습니다. 여기에 사용 내가 (실패) 현재 오전 코드 :

DBDataContext dc = new DBDataContext(); 
Entrys e = (Entry)EntryBindingSource.Current; 
dc.Entrys.Attach(e); 
dc.Entrys.InsertOnSubmit(e); 
dc.SubmitChanges(); 

의미가 나는 항목이 이미 존재하는 예외를 얻을이 코드와 함께,하지만 내가 원하는 것을 그에게 방법을 모른다 새 데이터로 해당 항목을 업데이트하십시오.

각 항목을 수동으로 업데이트하는 방법을 알고 있지만 열이 10 개인 경우 비교적 큰 if/else 트리가됩니다 (각 텍스트의 값이 해당 항목의 BindingSource 값과 다른지 확인). 해당 항목을 삭제 한 다음 다시 추가하면 나에게 나쁜 형식처럼 보입니다. 더 좋은 방법이있을 것이라고 확신합니다.

답변

0

나는이 권리를 제대로 수행하고 있는지 의심 스럽다. Linq를 사용하여 먼저 항목을 검색하거나 항목의 존재 여부를 확인한 다음 변경을 수행 한 다음 제출해야합니다. 이 방법을 업데이트하는 것은 매우 간단해야합니다. "InsertOnSubmit"콜은 제 의견으로는 매우 의심 스럽습니다.

+0

이전에 LINQ (또는 SQL)을 사용한 적이 없으므로이 작업을 잘못하고있는 것이 맞을 수도 있습니다. 사용자가 텍스트 상자에서 입력 한 데이터를 가져와 DataContext에 삽입 할 수 있습니까? – jnevelson

관련 문제