요즘 C#과 IBatis를 이용하여 프로그램을 개발하고 있다.
IBatis 사용이 익숙하지 않아 삽질의 연속이다.
public static IList<Hashtable> SelectQuery(string queryname, Hashtable parameter)위와 같이 SelectQuery() 함수를 만들어 이용하고 있는데, IBatis의 QueryForList() 함수는 IList<T>로 return한다.
{
string msg = string.Format(SELECT_QUERY, queryname);
DataLog.WriteLog(_Logger, msg, parameter);
return Mapper.Instance().QueryForList<Hashtable>(queryname, parameter);
}
IBatis의 QueryForList() 함수는 다음과 같이 정의되어 있다.
IList<T> QueryForList<T>(string statementName, object parameterObject);
아무든 IList<Hashtable>로 리턴 받은 값은 다음과 같이 사용할 수 있다.
private void btnSearch_Click(object sender, EventArgs e)
{
IList<Hashtable> result = DBQuery.SelectQuery(SQL.SELECT_SEND_FILE_PROCESS_CHK_MASTER, GetSearchCondi());
PrintSpreadProcessChkMaster(result);
}
private void PrintSpreadProcessChkMaster(IList<Hashtable> result)query에서 넘겨받은 값을 result[i]["HOLD_ORG_ID"].ToString() 과 같이 사용한다.
{
DefaultSheetDataModel model = new DefaultSheetDataModel();
model.RowCount = result.Count;
model.ColumnCount = COL_MAX;
for (int i = 0; i < result.Count; i++)
{
model.SetValue(i, COL_ORG_ID, result[i]["HOLD_ORG_ID"].ToString());
model.SetValue(i, COL_ORG_NAME, result[i]["HOLD_ORG_NAME"].ToString());
model.SetValue(i, COL_FOLDER, result[i]["FOLDER"].ToString());
model.SetValue(i, COL_FILE_NO, result[i]["FILE_NO"].ToString());
model.SetValue(i, COL_FILE_NAME, result[i]["FILE_NM_FORMAT"].ToString());
model.SetValue(i, COL_MAKE_PG, result[i]["MAKE_PG"].ToString());
model.SetValue(i, COL_TRANS_TYPE, ConvertTransTypeToString(result[i]["TRANS_TYPE"].ToString()));
model.SetValue(i, COL_MSG_SEND_YN, result[i]["MESSAGE_SEND_YN"].ToString() == "1" ? true : false);
model.SetValue(i, COL_CHK_TIME, SetCheckTime(result[i]["CHK_TIME"].ToString()));
model.SetValue(i, COL_CHK_ID, result[i]["CHK_ID"].ToString());
}
_ActiveSheet.Models.Data = model;
}
List<T>는 IList<T>와 조금 다르게 사용한다.
private void AddSendFileList(List<SendFile> list)
{
DefaultSheetDataModel model = new DefaultSheetDataModel();
model.RowCount = list.Count;
model.ColumnCount = COL_MAX;
for (int i = 0; i < list.Count; i++)
{
model.SetValue(i, COL_STATUS, "추가");
model.SetValue(i, COL_ORG_ID, list[i]._holdOrgID);
model.SetValue(i, COL_ORG_NAME, list[i]._holdOrgName);
model.SetValue(i, COL_FOLDER, list[i]._folder);
model.SetValue(i, COL_FILE_NO, list[i]._fileNo);
model.SetValue(i, COL_FILE_NAME, list[i]._fileNameFormat);
model.SetValue(i, COL_MAKE_PG, list[i]._makePG);
model.SetValue(i, COL_TRANS_TYPE, ConvertTransTypeToString(list[i]._transType));
}
_ActiveSheet.Models.Data = model;
}
Hashtable도 참 생소하구나-_-;
댓글 없음:
댓글 쓰기