Microsoft MVP성태의 닷넷 이야기
현업에서 주로 사용하는 DB업데이트 방법 질문입니다. [링크 복사], [링크+제목 복사],
조회: 19066
글쓴 사람
swc (djmann2 at naver.com)
홈페이지
첨부 파일
[repos.zip]    

OracleCommandBuilder ocb;
ocb = new OracleCommandBuilder(oda);
oda.UpdateCommand = ocb.GetUpdateCommand();
oda.InsertCommand = ocb.GetInsertCommand();
oda.DeleteCommand = ocb.GetDeleteCommand();
oda.Update(ds);

방법 2
cmd.Parameters.Add("EMPLOYEE_ID", OracleDbType.Int32, 6).Value = Int32.Parse(employee_id_txtbx.Text);
                  cmd.Parameters.Add("LAST_NAME", OracleDbType.Varchar2, 25).Value = last_name_txtbx.Text;
                  cmd.Parameters.Add("EMAIL", OracleDbType.Varchar2, 25).Value = email_txtbx.Text;
                  cmd.Parameters.Add("HIRE_DATE", OracleDbType.Date, 7).Value = date_picker.SelectedDate;
                  cmd.Parameters.Add("JOB_ID", OracleDbType.Varchar2, 10).Value = job_id_txt.Text;

C# WPF에서 DB를 UPDATE,INSERT, DELETE 할 수 있는 방법은 제가 알고있는건 2가지입니다.

1번 방법은 DATAGRID에서 UPDATE, INSERT, DELETE된 DATASET 정보를 OracleDataAdapter의 UPDATE메소드를 통해 한번에 업데이트 하는 방법하고

2번 방법은 OracleCommand에 SQL문과 피라미터값을 넣어서 쿼리문을 실행하는 방법입니다.

현업에서 주로 어떤방법을 사용하는지 알 수 있을까요? 혹시 더 좋은 방법이 있다면 알려주시면 감사합니다.






방법 1로 하면 되게 간단한데 예상치 못하게 트리거 오류가 나네요. 디버깅해서 db로 전송되는 질의문을보니 제가 이해하기가 좀 어렵네요.

방법 2로 하고는 싶은데 datagrid에서 UPDATE, INSERT, DELETE되거나 하나 이상의 행에 수정된 내용을 db에 적용 시키는 방법을 찾아봐도 안나오네요.

혹시 아시면 알려주시면 감사합니다.








[최초 등록일: ]
[최종 수정일: 6/5/2018]


비밀번호

댓글 작성자
 



2018-06-05 11시23분
2가지라고는 하지만 둘 다 마찬가지입니다. DataAdapter가 자동으로 쿼리를 구성해주는 듯 하지만 결국 수작업으로 구성한 것과 별반 다르지 않습니다.

방법 1의 자동화에서 트리거 오류가 나는 것은, 해당 DB 테이블에 걸린 제약 조건을 위반하고 있기 때문일 것입니다. DB 테이블에 걸린 제약 조건을 이해하시면 왜 DataAdpater에서 오류가 발생하는지 알 수 있게 될 것입니다.

제약 조건을 도저히 모를 상황이라면 방법 2를 어쩔 수 없이 써야 할 텐데요, ItemsSource에 DataTable을 전달하니, 다음의 메서드를 이용하면 변경된 데이터를 반환받을 수 있습니다.

DataTable.GetChanges Method ()
; https://msdn.microsoft.com/en-us/library/k2552649(v=vs.110).aspx
정성태

... 16  17  [18]  19  20  21  22  23  24  25  26  27  28  29  30  ...
NoWriterDateCnt.TitleFile(s)
5523민우7/1/202124924도커 사용시 윈도우 이미지 생성도 가능한가요? [2]
5522질문6/28/202117110WPF에서 splash screen이 나타나는 위치를 변경할 수 있나요? [3]
5521김민혁6/24/202119620.exe 파일 에러에 관한 질문 입니다. [3]
5520한예지 donator6/21/202118980랜덤함수 질문있습니다!! [2]
5519리얼킴6/19/202116338.net framwork 4.0 에서 4.8로 꼭 가야할까요?? [1]
5518한예지 donator6/18/202116861ArrayList, IList에 대해 질문 있습니다. [3]
5517wunsy6/18/202116211winform에서 Button 활성화, 비활성화 [4]
5516ocm6/15/202115106mips 어셈블리 연산 다시 질문드려요 (첨부파일 갱신됨) [2]파일 다운로드1
5515ocm6/14/202117880mips 어셈블리 연산 [6]파일 다운로드1
5514jongs6/11/202118795GethashCode와 String대한 질문 [2]
5513labe...6/11/202118080C# Winform 에서 Label에 동일한 Color를 넣었을 때 처리방법이 궁금합니다. [2]
55126/11/202117856xlwings 가 실행조차 되지 않습니다. ㅠㅠ [7]
5511Syong6/9/202116020User Control에 string array 속성 추가하는 방법 [4]
5510jay6/8/202115771string 문자열에 쌍따옴표(")를 넣고 싶습니다. [1]파일 다운로드1
5509한예지 donator6/3/202115419ExeccuteNonQuery 질문있습니다! [2]
5508최재남6/3/202117221마우스 이벤트 관련 질문 좀 드리겠습니다. [6]
5507한예6/2/202114897static과 스택오버플로우 질문있습니다. [5]파일 다운로드1
5506이창석6/1/202116997센서의 값을 받아서 PC를 통해 모니터링 하는 것을 만들고 있습니다. [1]
5505kss5/31/202115437.net5에서 소멸자가 어떻게 바뀐건가요? [1]
5503xing...5/24/202116595xingapinet 에 수정 요청 부탁 드립니다. [1]
5501한예지 donator5/23/202117182IProgress 사용법이 궁금합니다. [2]
5500한예ㅈ5/23/202119377비동기 코드 흐름 질문있습니다. [3]
5498곰장어5/21/202116402List에 static 변수를 추가했을때의 궁금증 [3]파일 다운로드1
5497지평선5/20/202118497윈도우 배율을 알 수 있을까요? [1]
5496cs린이5/20/202114944C# 8.0 질문입니다. [2]파일 다운로드6
5495Natie5/13/202114432객체를 생성과 동시에 초기화 하는 방법 [1]
... 16  17  [18]  19  20  21  22  23  24  25  26  27  28  29  30  ...