Oracleデータベースからさまざまなデータセットを呼び出すときに、コードの重複を最小限に抑えるために使用する次のクラスがあります。主に、オーバーロードされたコンストラクタでコードの重複を取り除くための助けが必要ですが、他のアドバイスも高く評価されます。C#のオーバーロードされたコンストラクタの発行
public class UniformData
{
private string connection = "My Connection String";
private OracleConnection con;
private OracleCommand com;
private OracleDataReader reader;
public UniformData(string sql)
{
con = new OracleConnection(connection);
con.Open();
com = new OracleCommand(sql, con);
}
public UniformData(string sql, List<SqlParameters> myParams)
{
con = new OracleConnection(connection);
con.Open();
com = new OracleCommand(sql, con);
foreach (SqlParameters Param in myParams)
{
com.Parameters.Add(Param.ParamName, Param.ParamValue);
}
}
public OracleDataReader GetReader()
{
reader = com.ExecuteReader();
return reader;
}
~UniformData()
{
con.Close();
con.Dispose();
com.Dispose();
reader.Close();
reader.Dispose();
}
}
を外し実装してください。ファイナライザは、管理されていない*リソースをクリーンアップするためのものであり、管理されたリソースを廃棄するものではありません。 'IDisposable'を実装し、' Dispose'メソッドで合成オブジェクトを処分し、ファイナライザを持たないようにしてください。 – Servy