私は C# と OOP を初めて使用するので、これが簡単な質問のように思われる場合は、事前にお詫び申し上げます。私は自分のコードに戻って、反復コードをオブジェクト化し、そのクラスを単純に再利用できるようにクラスを作成する方法を探しています。そうは言っても、まだ NHibernate やその他の ORM を学ぶつもりはありません。私はLINQを学ぶつもりさえありません。これをハックして学びたい。
基本的に、同じコードを使用してデータベースにアクセスし、取得した値をドロップダウン リストに入力します。例:
protected void LoadSchools()
{
SqlDataReader reader;
var connectionString = ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString;
var conn = new SqlConnection(connectionString);
var comm = new SqlCommand("SELECT * FROM [Schools] ORDER BY [SchoolName] ASC", conn);
try
{
conn.Open();
reader = comm.ExecuteReader();
cmbEditSchool.DataSource = reader;
cmbEditSchool.DataBind();
cmbEditSchool.Text = "Please select an existing school to edit...";
if (reader != null) reader.Close();
}
finally
{
conn.Dispose();
}
}
私はこの同じコードを、プログラム全体のさまざまなページで何度も使用しています。ほとんどの場合、ドロップダウン リストまたはコンボ ボックスにデータを入力しますが、クエリを少しだけ変更してグリッドビューにデータを入力することもあります。
私の質問は、私の例のように手動でクエリを使用する代わりに、ストアド プロシージャを呼び出すことができるクラスを作成し、さまざまなコントロールにデータを入力するにはどうすればよいですか? 1つの方法だけで行うことは可能ですか? 選択から始めるだけです。使用するのに適切なインターフェイスのように思われる IEnumerable について調べてきましたが、どのように使用すればよいですか?
追加するために編集:
Rorschach の回答を THE 回答としてマークしました。また、適切な DAL 層とおそらく BLL 層の必要性も理解しています。私が到達しようとしていたのはそれでした。データセットとテーブル アダプターを使用して DAL を構築すると、最終的に厳密に型指定されたデータセットが得られます。ただし、コードから少し離れているように感じます。私は、上記のコードから始めて、自分で DAL を構築する簡単な方法を求めていました。おそらく、私は自分の質問や求めていることを正しく表現していません。
いずれにせよ、ロールシャッハは私の実際の質問に答えるのに最も近かった. ありがとう。