2010-02-25 5 views
0

을 반환하는 방법, 나는 DataAccessLayer에서이 쿼리를 실행하고, 내가 BUsinessLogicLayer throgh 응용 계층에서이 쿼리를 호출합니다.3 계층을 사용하여 VB.Net와 C# 닷넷</p> <p>를 사용하여 실행 명령

코드.

Cmd = New SqlCommand("Exec delTable", con) 
cmd.ExecuteNonQuery 

I는이 같은 명령을 실행 반환 할 , 애플리케이션 레이어에서

방법이 호출?

누구도 샘플 코드를 제공 할 수 없습니다.

+0

질문이 명확하지 않습니다. 정확히 무엇을 돌려주고 싶니? 일부 출력 매개 변수가있는 저장 프로 시저를 실행하고 있습니까? –

+0

아니요, 3 계층을 사용하여 DataAccessLayer에서이 쿼리를 실행 중이므로 BUsinessLogicLayer를 통해 ApplicationLayer에서이 쿼리를 호출하고 싶습니다. – Gopal

+2

그 이유는 무엇입니까? 3 계층을 수행하는 경우 데이터 액세스 계층을 통해 데이터와 만 인터페이스해야합니다. 쿼리를 호출하면 3-tier 방법론을 위반하게됩니다. –

답변

1

데이터를 전달하는 것이 좋습니다.

Dim customers = myCustomerDataAccess.GetAll() 

나는 귀하의 질문에 (그리고 옆에 건축 문제), 그냥하는 SqlCommand 자체를 반환하고, 나중에 "실행"호출 할 수 있습니다 얻는 경우에 확실하지 않다 (하지만 단지 그렇게하지를!) .

Sub Main 
    GetSomeSpecificCommand().ExecuteNonQuery() 
End Sub 

Public Function GetSomeSpecificCommand() as SqlCommand 
    Dim cmd = New SqlCommand("Exec delTable", new SqlConnection()) 
    Return cmd 
End Function 

SqlCommand에 대한 자체 래퍼를 작성할 수 있습니다.

3

TIER을 동일한 관점으로 다루어서는 안되며, 계층화 된 아키텍처를 다루어야합니까? (즉, 각자가 이웃에게 잘 말할 수있는 레이어가있어 그 사이를 직접 "도달"하는 것은 좋은 프로그래밍이 아닙니다.)

이러한 데이터 레이어 호출을 래핑해야합니다. 요점은 데이터 호출을 변경해야하는 경우 모든 소스를 검색하지 않아도된다는 것입니다 ... 한 곳으로 이동하십시오.

그냥 2 센트입니다.

토브

관련 문제