私はDDLをasp.net Webフォームに入力しており、ストアドプロシージャを呼び出すすべてのSQLクラスに対して持っているsqlutililityクラスを使用しています。
しかし、各ドロップダウンリストで同じコードを繰り返し、名前を変更してから、使用したいときに呼び出します。
私が知りたいのは。常に繰り返す代わりに、このコードを使用する方法はありますか?
protected void Populate_Authority()
{
// Init()
// ------
SqlConnection conn = null;
SqlDataReader rdr = null;
SqlCommand cmd = null;
//
drp_Authority.Items.Clear();
try
{
// Conn
// ----
conn = new SqlConnection(ConfigurationManager.ConnectionStrings["conn"].ConnectionString);
conn.Open();
// Cmd
// ---
cmd = new SqlCommand("[sp_Populate_Authority]", conn);
cmd.CommandType = CommandType.StoredProcedure;
// Execute
// -------
rdr = cmd.ExecuteReader();
// Row(s)?
// -------
if (rdr.HasRows)
{
// Read
// ----
while (rdr.Read())
{
// Populate
// --------
drp_Authority.Items.Add(
new ListItem(
rdr["Authority"].ToString(),
rdr["AuthorityID"].ToString()));
}
// Blank
// -----
drp_Authority.Items.Insert(0, String.Empty);
}
// Clean up / Close down
// ---------------------
cmd.Dispose();
rdr.Dispose();
rdr.Close();
conn.Dispose();
conn.Close();
}
catch (SqlException ex)
{
// Throw Sql Exception
// -------------------
throw ex;
}
finally
{
// Clean up / Close down
// ---------------------
if (cmd != null)
{
cmd.Dispose();
}
if ((rdr != null) && (!rdr.IsClosed))
{
rdr.Dispose();
rdr.Close();
}
if ((conn != null) && (conn.State != ConnectionState.Closed))
{
conn.Dispose();
conn.Close();
}
}
}