表示するエンティティのクラスを作成します。例:ドロップダウンにすべての州を表示する場合は、State クラスを作成します。
public class State
{
public int ID { set;get;}
public string Name { set;get;}
}
次に、データベースにクエリを実行して結果を DataReader に取得するメソッドを作成し、アイテムを繰り返し処理して、値を State クラスの新しいオブジェクトに設定します。各オブジェクトを (State クラスの) リストに追加します。したがって、メソッドの戻り値の型はState
クラス オブジェクトのリストになります。
public List<State> GetStates()
{
List<State> stateList=new List<State>();
// execute query, read from reader and add to the stateList
// the below code is SqlServer DB specific.
// you need to change the Connection,Command class for it to use with MySql.
using (var con= new SqlConnection("replace your connection string"))
{
string qry="SELECT ID,NAME FROM STATES";
var cmd= new SqlCommand(qry, objConnection);
cmd.CommandType = CommandType.Text;
con.Open();
using (var objReader = cmd.ExecuteReader())
{
if (objReader.HasRows)
{
while (objReader.Read())
{
var item=new State();
item.ID=reader.GetInt32(reader.GetOrdinal("ID"));
item.Name=reader.GetString(reader.GetOrdinal("Name"));
stateList.Add(item);
}
}
}
}
return stateList;
}
次に、ページに DropDownList コントロールを配置します。
<asp:DropDownList id="states" runat="server" />
このページの分離コードで、ドロップダウンのデータを設定できます (おそらく Page_Load イベントで)。
if(!isPostBack)
{
states.DataSource=yourRepositary.GetStates();
states.DataTextField="Name";
states.DataValueField="ID";
states.DataBind();
}