我选择要在查询中插入的DropDownList
值,但该值在查询中保持空白,并且由于条件中没有任何结果结果的空值。我做了不同的技巧,但仍然是空的
if (chkBoxChanl.Checked)
{
sql += " and channelName = '" + ddlChannel.Text + "' ";
}
if (chkBoxDate.Checked)
{
sql += " and transmissionDate_ between '" + tbFrom.Text + "' and '" + tbTo.Text + "'";
}
if (chkBoxProgrm.Checked)
{
sql += " and programName ='" + ddlProgram.Text + "'";
}
if (chkBoxParty.Checked)
{
sql += " and partiesName like '%" + ddlParty.SelectedValue + "%'";
}
if (chkBoxPerson.Checked)
{
sql += " and personsName like '%" + ddlPerson.SelectedItem + "%'";
}
if (chkBoxProvince.Checked)
{
sql += " and ProvinceName like '%" + ddlProvince.SelectedItem + "%'";
}
if (chkBoxCity.Checked)
{
sql += " and CityName like '%" + ddlCity.Text + "%'";
}
像
ddlProgram.Text
ddlProvince.SelectedItem
ddlPerson.SelectedValue
选定的DropDownList
值在查询中显示为空。如何在查询中添加所选值?请帮帮我!
我检查当我选择第一次加载时出现的下拉列表值,然后按下搜索按钮下拉列表值为空后2md时,当我按下搜索按钮时,它首先运行Page_Load函数,如果执行(!IspostBack),则选择所有下拉列表值变为空,导致where子句中的值为空。现在我希望当我按下搜索按钮时,下拉列表值仍然被加载,这将解决问题成为enpty下拉列表值。请进一步指导我
答案 0 :(得分:1)
首先:您不应该以这种方式将参数连接到查询。您将自己暴露于SQL注入攻击。
抱歉,对stackoverflow不熟悉。没有看到评论按钮
和
programName =' mytext' OR 1 = 1;
DROP Database
评论其他任何内容。
答案 1 :(得分:1)
您无法直接在sql查询中连接输入字段的值。它使您的系统容易受到Sql Injection的攻击。在运行此类SQL查询之前,您至少应该对从这些字段中检索的内容进行编码。在继续之前你read this是非常重要的。
仔细阅读以上内容后,您可以在下拉列表中获取所选项目的值。你这样做:
yourDropDown.SelectedItem.Value
如果它没有返回值,那可能是因为您没有在下拉列表中设置任何值。请记住根据您的数据源进行设置:
yourDropDown.DataValueField = "TheSourceFieldContainingTheValue";
答案 2 :(得分:0)
构建你的SQL查询:
public DataSet ExecuteDataSet(string text, SqlParameter[] paramList)
{
using (SqlCommand sqlCommand = new SqlCommand(text, sqlConnection))
{
if (paramList != null)
{
foreach (var param in paramList)
{
sqlCommand.Parameters.Add(param);
}
}
SqlDataAdapter dataAdapter = new SqlDataAdapter(sqlCommand);
DataSet dataSet=new DataSet();
dataAdapter.Fill(dataSet);
return dataSet;
}
}