[英]C# drop down list selected value not being set to SQL select statement stored procedure
[英]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.