簡體   English   中英

使用C#從select語句的下拉框中傳遞所選值

[英]Pass selected value from drop down box in select statement using C#

我有一個下拉列表,顯示位置名稱,該下拉列表的數據源同時帶有LOC_NM和LOC_ID,但用戶只能看到位置名稱。 所以我想做的就是在我的選擇查詢中傳遞LOC_ID,我該怎么做? 這是下拉代碼:

<asp:DropDownList ID="locatioin"  DataSourceID="dd_source" DataTextField="LOC_NM" DataValueField="LOC_ID" runat="server" AppendDataBoundItems="true">
<asp:ListItem Text="Select Location" Value="Select Location"></asp:ListItem>
</asp:DropDownList>

這是我的select語句后面的代碼:

 SqlDataAdapter da = new SqlDataAdapter("select Company, Location from MainTable
    where Location = selected LOC_ID")

如您所見,我想在查詢中傳遞所選值的LOC ID,但是我遇到了麻煩:其中Location = selected LOC_ID

這是快速的解決方案:

var tmp = "SELECT Company, Location FROM MainTable WHERE LocationColumn = {0}");
var query = string.Format(tmp,location.SelectedValue);
SqlDataAdapter da = new SqlDataAdapter(query);

這是安全的解決方案:

SqlConnection conn = new SqlConnection(_connectionString);
conn.Open();
string s = "SELECT Company, Location " + 
           "FROM MainTable " +
           "WHERE LocationColumn = @location";
SqlCommand cmd = new SqlCommand(s);
cmd.Parameters.Add("@location", location.SelectedValue);
SqlDataReader reader = cmd.ExecuteReader();

歸功於最好的編碼站點之一: 編碼恐怖:給我參數化的SQL,否則給我死亡

萌:我希望您不要像在發布的示例中那樣串聯SQL字符串。 這種連接遭受SQL注入攻擊。 我建議使用參數化查詢。

問候,烏羅什

像這樣

SqlDataAdapter da = new SqlDataAdapter("select Company, Location from MainTable
    where Location = "+locatioin.SelectedValue+"")

您只需要使用下拉菜單的selected value屬性。

盡管您還需要更正查詢。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM