2016-06-15 3 views
1

TableAdapter 쿼리 구성 마법사를 사용하고 있습니다. 아래 표에 나와있는 것처럼 한 테이블에서 데이터를 선택하고 다른 테이블에 삽입하려고합니다. 나는 내 응용 프로그램의 기능을 호출한 테이블에서 행 데이터를 선택한 다음 TableAdapter를 사용하여 다른 테이블에 삽입하십시오.

SELECT a.StudentID FROM [dbo].[Student] AS a WHERE [Email] = @Email; 

INSERT INTO [dbo].[Registration] ([StudentID], [UniformOptionID], [Cost]) 
VALUES (a.StudentID, @Param1, @Param2); 

, 오류 메시지가 프롬프트

Error message: The multi-part identifier "a.StudentID" could not be bound

왜 가능이 아닌가요?

+0

확인처럼 : https://technet.microsoft.com/en-in/library/ms188263(v=sql.105).aspx – Swapnil

답변

2
INSERT INTO [dbo].[registration] 
     ([studentid], 
     [uniformoptionid], 
     [cost]) 
SELECT a.studentid, 
    @Param1, 
    @Param2 
FROM [dbo].[student] AS a 
WHERE [email] = @Email; 
+0

멋진 대답은, 그것을 매력처럼 작동합니다. – iamhx

1

이 시도 :

INSERT INTO [dbo].[Registration] ([StudentID], [UniformOptionID], [Cost]) 
SELECT a.StudentID, @Param1, @Param2 FROM [dbo].[Student] AS a WHERE [Email] = @Email; 

은 즉, 당신이 당신의 테이블에 값을 삽입 할 select 문을 사용할 수 있습니다. @Param1, @Param2select 문에 직접 제공 될 수 있습니다.

+0

좋은 답변입니다. 작동합니다. – iamhx

2

Insert 문에 a.StudentID을 사용할 수 없습니다. 변수를 선언 한 다음 사용할 수 있습니다. SELECT와 INSERT 사용하는 방법에 대한이 글이

Declare @studentID int 

SELECT @studentID=a.StudentID FROM [dbo].[Student] AS a WHERE [Email] = @Email; 

INSERT INTO [dbo].[Registration] ([StudentID], [UniformOptionID], [Cost]) 
VALUES (@studentID, @Param1, @Param2); 
+0

내 TableAdapter 함수에 내 이메일에 대한 매개 변수를 입력 할 수있는 옵션이 없습니다. – iamhx

+0

TableAdapter 함수 코드를 공유하십시오. 그래서 나는 더 잘 이해할 수있다. – Sam

+0

'RegistrationTableAdapter1.RegisterCourse (String, Cost as String, Email as String) ' 'Cost as String'은 10 진수 여야합니다. 왜 그런지 모르겠지만 오류는 발생하지 않습니다. – iamhx