해결된 질문
24.05.13 20:50 작성
·
139
0
안녕하세요 선생님
소스에서 MSSQL로 파라미터를 전달하는 부분에 관련해서 질문드리고 싶습니다.
질문 1
지금은 view 단에서 파라미터를 받아서 가져가고 있는데 서비스단에서 파라미터를 추가할 수 있는 방법이 있을까요?
제가 이전에 하위 버전의 솔루션에서 사용했던 파라미터 전송 방식입니다.
internal DataTable CommonSearch(string div, string strwhere)
{
string sSpName = "SP_Common";
string gubun = "마스터 코드";
string[] pParam = new string[3];
pParam[0] = "@gb:" + gubun;
pParam[1] = "@div:" + div;
pParam[2] = "@strwhere:" + strwhere;
DataTable dt = _bllSpExecute.SpExecuteTable(sSpName, gubun, pParam);
return dt;
}
기존에는 이런 방식을 차용해서 파라미터 전송을 했는데 지금 전달 주신 부분에서는 저 구분을 어떤 방식으로 보내야 할 지 감이 안 옵니다...
//로그인 뷰
public async Task<GetUserResponseDTO> GetUser(GetUserDTO getUserDTO)
{
// auto mapper로 {}사용하여 동적 개체 수령
var configuration = new MapperConfiguration(cfg => { });
//Response..DTO 생성후 Controller로 전달
// Perform mapping
Mapper mapper = new Mapper(configuration);
Dictionary<string, object> dc = mapper.Map<GetUserDTO, Dictionary<string, object>>(getUserDTO);
//-----> 이 부분에 삽입해서 전달 하는 방법?
ProcCall procCall = new ProcCall();
DataTable dt = await procCall.RequestProcedure("SP_Login", dc);
GetUserResponseDTO dto = new GetUserResponseDTO();
dto.gubun = "S";
//dto.Id = (int)dt.Rows[0]["id"];
dto.UserId = dt.Rows[0]["UserId"].ToString();
dto.Password = dt.Rows[0]["Password"].ToString();
return dto;
}
여기 서비스 단에서 담아서 보낼 수 있을까요?
답변 1
1
2024. 05. 13. 22:06
안녕하세요.개발자park입니다.
[질문1=답변]
어떤 것을 원하시는지 모르겠지만요.
Dictionary<string, object> abc = new Dictionary<string, object>();
//-----> 이 부분에 삽입해서 전달 하는 방법?
abc.Add(키, 값);
키와 값 형태로 넣을 수 있긴 합니다.
보통 많이들 DAL호출전에 보낼 데이터를 정리합니다.
그리고 질문에 적으신 코드
DataTable dt = _bllSpExecute.SpExecuteTable(sSpName, gubun, pParam);
이러한 프로시저 호출방법으로 많이들 사용하기도해서 기존 소스코드를 사용하시는 것도 나쁘지 않습니다.
감사합니다.
2024. 05. 16. 14:57
감사합니다 add (키,값) 으로 시도해 보겠습니다!