2009-07-08 3 views
0
에로드하십시오.

SQL Server 2008 및 VS 2008 Pro가 있습니다. 그리고 저는 C#으로 코딩하고 있습니다. 고객으로부터 텍스트 입력 파일을 받아들이고이 데이터를 C# aspx.cs 파일의 DataTable로 구문 분석합니다. 나는 이것이 올바르게 작동하고 있음을 안다. 그래서 DataTable을 채 웠습니다. 그러나 이제이 데이터를 SP에 어떻게로드합니까? 마찬가지로 동적 테이블 매개 변수를 사용할 수 있습니까? 아니면 대신 XML을 사용해야합니까?DataTable을 SP

필수 열의 수가 삽입 할 테이블에 따라 달라질 수 있습니다. 세부 정보는 사용자가 데이터를 추가 할 테이블을 선택하게합니다. 단순 들어, 가정 해 봅시다 : TABLE_NAME의 NUM_COLS로 2 B 3 C 4

또한의 다음의 각 첫 번째 열은 INT 기본 키라고 가정하자. 그래서 표 B를 선택하면 DataTable은 다음과 같이 표시됩니다. PK C1 C2 C3 1 'd' 'e' '3/10/99' 2 'g' 'h' '4/10/99'

이제 AdventureWorks DB의 표 B에이 데이터를 추가하고 싶습니다. 이 SP를 호출하는 C# 코드와 SP 정의 모두에서 이것을 구현하는 가장 쉬운 방법은 무엇입니까? 감사합니다.

답변

1

나는 당신이 묻는 것을 이해하고 있다고 생각합니다. 데이터 가져 오기의 각 행이 데이터베이스의 테이블에 직접 또는 완전하게 매핑 될 것이라고 가정합니다. 또한 애플리케이션 로직이 데이터의 각 행을 어디에 유지할지 결정할 수 있다고 가정 할 것입니다.

이것은 .NET 데이터 테이블의 각 행을 개별적으로 SQL에 저장 프로 시저 매개 변수로 전달한 다음 SQL에 따라 데이터 파싱 및 테이블 매핑을 수행하는 것이 아니라 개별적으로 작업하는 것이 좋습니다.

기본적으로 DataTable을 반복하고 데이터 형식을 결정한 다음 각 행에 적절한 삽입을 실행합니다. 이게 도움이 되길 바란다.

+0

감사합니다. 이것은 나에게 의미가있다. 모든 가정은 내 코드에 해당됩니다. 이 메서드의 모델을 구현할 수있는 좋은 온라인 예제를 알고 계십니까? – salvationishere

+0

"형식을 결정하기 위해 각 데이터 행을 구문 분석하는 것이 좋습니다." 그런 다음 기본 switch 문을 사용하거나 행 "유형"을 기반으로 데이터 업데이트를 처리하는 전략 패턴을 사용합니다. 기본적으로 각각의 경우는 다른 SQL 루틴을 실행합니다. 전략 패턴에 대한 자세한 내용은 Jeremy Miller의 기사 (http://codebetter.com/blogs/jeremy.miller/archive/2006/04/11/142665.aspx)에서 시작하십시오. 행운을 빕니다. –