2010-05-04 2 views
1

SQL Server에 두 개의 관련없는 테이블이 있습니다. SQL Server의 데이터베이스 다이어그램에 관계 선 등이있는 C#을 통해 이들과 관계를 형성하고 싶습니다. (코드에는 명령문 등이 부족하여 결함이있을 수 있습니다.새 데이터 작성시 ArgumentNullException

지금까지이 코드를 가지고 :

SqlConnection con = new SqlConnection("Data Source=localhost;Initial Catalog=Test;Integrated Security=SSPI"); 

     SqlDataAdapter ad1; 
     SqlDataAdapter ad2; 

     DataSet ds = new DataSet(); 
     DataRelation dr; 


     ad1 = new SqlDataAdapter("Select * from dept", con); 
     ad2 = new SqlDataAdapter("select * from emp", con); 
     ad1.Fill(ds, "dept"); 
     ad2.Fill(ds, "emp"); 
     DataColumn pk = ds.Tables["dept"].Columns["deptno"]; 
     DataColumn fk = ds.Tables["emp"].Columns["deptno"]; 
     dr = new DataRelation("rel", pk, fk, false) 
     ds.Relations.Add(dr); 

     ds.AcceptChanges(); 
     ad1.Update(ds, "dept"); 
     ad2.Update(ds, "emp"); 

나는이 라인에 도착 :

'열이'인수가 null 일 수 없습니다 :

 dr = new DataRelation("rel", pk, fk, false) 

나는이 예외를 얻을. 매개 변수 이름 : 열

실제로 SQL Server에서 이러한 방식으로 관계를 형성 할 수 있습니까?

무엇을 제공합니까? 테이블 중 하나가 "DEPTNO"열이없는하지 않는 한

답변

2

모든

.. 괜찮아 보이는 당신이있어 실제 가까운 라인 :

dr = new DataRelation("rel", pk, fk, false); 
의 말에이 (세미콜론 시도

는 지금까지 JWL_으로 데이터베이스에 다시가는 이러한 변화로로 이동하기 시작, 아니 그들이하지, 여기 a blurb from MSDN의 않습니다

당신의 응용 프로그램이 재치 작업을 필요로 할 때 많은 시간이있다

h 관련 테이블 . 데이터 집합에 데이터베이스와 마찬가지로 테이블과 열이 포함되어 있지만 데이터베이스의 테이블 연결 기능은 본질적으로 포함되어 있지 않습니다. 그러나 공통 키를 기반으로 상위 (마스터)와 하위 (세부) 테이블간에 관계를 설정하는 DataRelation 개체를 만들 수 있습니다.

+0

감사합니다. 그것은 나를 위해 약간 불행한 일이다. : ( – dotnetdev

+0

이 경우 linq을 통해 datatables에 합류하는 것이 더 나은 해결책일까요? – aggietech

0

코드에서 선언 한 관계가 데이터베이스에 저장되지 않습니다. 그것은 단지 DataSet 내부에 살고 있습니다. (최소한 나는 생각합니다.)

관련 문제