0

我选择DropDownList要在查询中插入的值,但该值在查询中保持为空白,并且由于在 where 条件下没有任何结果结果为空值。我用不同的技巧做,但保持空虚

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 函数并执行 if(!IspostBack) 然后所有下拉列表选择的值都变为空这会导致 where 子句中的值清空。现在我希望当我按下搜索按钮下拉列表值时保持加载,这将解决问题成为 enpty 下拉列表值。请进一步指导我

4

3 回答 3

1

首先:您不应该以这种方式将参数连接到查询。您将自己暴露在 SQL 注入攻击之下。

抱歉,stackoverflow 的新手。没看到评论按钮

programName =' mytext' OR 1 = 1; 
DROP Database

评论其他任何事情。

于 2012-11-01T11:35:48.280 回答
1

您不能直接在 sql 查询中连接输入字段的值。它使您的系统容易受到 Sql Injection 的攻击。在运行此类 sql 查询之前,您至少应该对从这些字段中检索的内容进行编码。在继续之前阅读此内容非常重要。

仔细阅读以上内容后,您可以在下拉列表中获取所选项目的值。你来做这件事:

yourDropDown.SelectedItem.Value

如果它没有返回值,那可能是因为您没有在下拉列表中设置任何值。请记住根据您的数据源进行设置:

yourDropDown.DataValueField = "TheSourceFieldContainingTheValue";
于 2012-11-01T11:37:51.647 回答
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;
            }
        }
于 2012-11-01T13:03:40.653 回答