DB2 데이터베이스를 조회하는 데 사용하는 랩퍼가 있습니다. 래퍼 설정 방법은 쿼리 메서드 내에서 연결을 만들고 처리하는 것입니다. 이 방법으로 래퍼의 소비자는 연결을 관리 (열기 및 닫기)하는 것에 대해 걱정할 필요가 없습니다. 저장 프로 시저로이 작업을 수행 할 수있는 방법이 있습니까? 내 사용자 중 일부는 아웃 바운드 매개 변수를 전송합니다. 위의 쿼리에서와 같이 매개 변수를 데이터 테이블로 변환 할 수있는 방법이 있습니까?스토어드 프로 시저 연결 랩퍼
/// <summary>
/// Query A database and return a DataTable of strings with no null
/// </summary>
/// <param name="txtQuery">The Query</param>
/// <param name="list">the paramaters for the query</param>
/// <returns>Datatable with results</returns>
public DataTable Query(string txtQuery, params string[] list)
{
//create return ovject
DataTable dt = new DataTable();
//pull dbconnection out of pool
using (var conn = new DB2Connection(connectionstring))
{
//open connection
if (!OpenConn(conn))
{
throw new Exception(“failed to connect”);
}
try
{
//query db
using (DB2Command cmd = new DB2Command())
{
cmd.Connection = conn;
cmd.CommandText = txtQuery;
for (int i = 0; i < list.Length; i++)
{
DB2Parameter param = new DB2Parameter(i.ToString(), list[i]);
cmd.Parameters.Add(param);
}
//fill datatable
using (DB2DataAdapter adap = new DB2DataAdapter())
{
adap.SelectCommand = cmd;
adap.Fill(dt);
}
}
}
catch (Exception ex)
{
throw ex;
}
}
return dt;
}
문제를 이해했는지 확실하지 않습니다. 'CommandType'을'StoredProcedure'로 설정하고 그것을'DataAdapter'에 사용하여'DataTable'을 채울 수 있습니다. –
저의 이해는 저장 프로 시저의 경우 원래의 열린 연결이 필요한 데이터 배열을 사용하여 출력 매개 변수를 보낼 수 있습니다. – user889829
'SP'는 무엇을 반환합니까? 행을 반환하는 쿼리 인 경우 어댑터를 사용하여 DataTable을 채울 수 있습니다. –