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;
}