以下を生成するドロップダウンリストがあります。
SiteId の可能な値:
"Select Site"
"1"
"2"
"3"
"4"
Select Site がデフォルト値であることに注意してください。
<asp:DropDownList ID="ddlSite" DataSourceID = "siteDS" runat="server" OnSelectedIndexChanged="ddlSite_SelectedIndexChanged" AutoPostBack="true" DataTextField="SiteName"
DataValueField="SiteId" AppendDataBoundItems="true">
<asp:ListItem>Select Site</asp:ListItem>
</asp:DropDownList>
次のクエリがありますが、より良い方法があるかどうかはわかりません
// this checks to see if the value is Select Site or an actual siteid (1,2,3)
int siteID = 0;
int Site;
bool result = Int32.TryParse(ddlSite.SelectedValue, out Site);
if (result)
{
siteID = Site;
}
if (result)
{
NTDS.SelectCommand = "SELECT * FROM [tbl1] where siteId = " + siteID;
}
else
{
NTDS.SelectCommand = "SELECT * FROM [tbl1]";
}
if else がある理由は、ユーザーが選択した場合: サイトを選択します。値がサイトを選択する siteId がないため、SELECT を実行したくありません。
これを行うより効率的な方法はありますか?