DB 처리를 할때에는 스토어드 프로시져를 이용하며,
처리방식에는 3가지 방식이 있습니다.
1. 데이터 여러 행 읽기 (예 : 글 리스트)
2. 데이터 한 행 읽기 (예 : 글읽기)
3. 데이터 입력,수정,삭제 (예 : 글쓰기, 수정, 삭제)
하지만, WB에서는 저 3가지 방법중 2가지만 사용합니다.
1, 3 번!!
2번은 약간 문제가 있어서 1번을 대체합니다.
일단, 1. 데이터 여러행 읽기 를 할때 사용하는 부분의 예입니다.
디비 연결자 : InnoWB (이부분은SettingFile.config 에 이름을 설정합니다.)
프로시져는 : iGetBoardFileList
파라메터 idx 를 넘겨서 그 idx 와 관련되는 파일 리스트를 가져오는 부분입니다.
데이터를 가져올때에는 DataSet 이라는 놈을 이용합니다.
public DataSet GetBoardFileList(int _idx, out string _rtnVal, out int _rtnCode)
{
DataSet ds = new DataSet();
SqlParameter[] parameters = {
new SqlParameter("@Idx", SqlDbType.Int)
};
parameters[0].Value = _idx;
ds = DBCommand.RunProcedure("InnoWB", "iGetBoardFileList", parameters, "tbGetBoardFileList", out _rtnVal, out _rtnCode);
return ds;
}
프로시져의 파라메터를 위의 부분처럼 항상 정의를 해줘야 합니다.
SqlParameter[] parameters = {
new SqlParameter("@Idx", SqlDbType.Int)
};
parameters[0].Value = _idx;
위의 부분은 파라메터가 1개가 있을때고요.
2개가 있을때에는..
SqlParameter[] parameters = {
new SqlParameter("@Idx", SqlDbType.Int)
,new SqlParameter("@FileName", SqlDbType.Varchar, 200)
};
parameters[0].Value = _idx;
parameters[1].Value = _fileName;
이런식으로 하시면 되겠습니다.
그러면DBCommand.RunProcedure 이 파라메터들을 입력 받아서 해당 프로시져를 실행시켜서, 반환되는 데이터를 DataSet 형식으로 반환해줍니다.
일단, 디비에서 select * from dbo.test 와 같은 여러행을 가져올때는 DataSet 을 이용한다는 것만 알아두도록 하죠.
2.데이터 입력,수정,삭제
즉, Select 쿼리가 없이… 그냥 입력하면 끝.. 수정처리하면 끝… 이부분은 DataSet 부분과도 비슷합니다.
예를 들어 위의 부분을 비슷하게 고쳐서 데이터를 입력하는 부분으로 바꾼다면…
public void AddBoardFileList(int _idx, out int _rtnCode)
{
DataSet ds = new DataSet();
SqlParameter[] parameters = {
new SqlParameter("@Idx", SqlDbType.Int)
};
parameters[0].Value = _idx;
ds = DBCommand.RunProcedure("InnoWB", "iGetBoardFileList", parameters, "tbGetBoardFileList", out _rtnVal, out _rtnCode);
DBCommand.RunProcedure("InnoWB", "iGetBoardFileList", parameters, out _rtnCode);
return ds;
}
대충 이런식으로 바뀝니다.
다시 정리된걸 보면...
public void AddBoardFileList(int _idx, out int _rtnCode)
{
SqlParameter[] parameters = {
new SqlParameter("@Idx", SqlDbType.Int)
};
parameters[0].Value = _idx;
DBCommand.RunProcedure("InnoWB", "iGetBoardFileList", parameters, out _rtnCode);
}
INNO WB와 DB와의 데이터 처리 방식은 대충 저러합니다.
자세한건 소스를 몇번 보다보면 대충 이해갈 갈거에요.
그래도 궁금하신게 있으시면 질문게시판에 글을 남겨주세요~ |