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値はクエリで空で表示されます。

選択した値をクエリに追加するにはどうすればよいですか? 私を助けてください!

最初のロードでドロップダウン リストの値を選択すると、検索ボタンを押してから 2 時間後にドロップダウン リストの値が空になり、検索ボタンを押すと最初に Page_Load 関数が実行され、if(!IspostBack) が実行されると、ドロップダウン リストで選択されたすべての値が空になることを確認します。 where句の値を空にする原因となります。検索ボタンを押しても、ドロップダウンリストの値がロードされたままになり、問題が解決されて空のドロップダウンリストの値になるようにしたいと考えています。さらに案内してください

4

3 に答える 3

1

入力フィールドの値をSQLクエリで直接連結することはできません。それはあなたのシステムをSQLインジェクションに対して脆弱にします。このようなSQLクエリを実行する前に、少なくともこれらのフィールドから取得するものをエンコードする必要があります。先に進む前にこれを読むことが非常に重要です。

上記を注意深く読んだ後、ドロップダウンで選択したアイテムの値を取得できます。これをして:

yourDropDown.SelectedItem.Value

値が返されない場合は、ドロップダウンに値を設定していない可能性があります。データソースに応じて設定することを忘れないでください。

yourDropDown.DataValueField = "TheSourceFieldContainingTheValue";
于 2012-11-01T11:37:51.647 に答える
1

まず第一に、この方法でパラメータをクエリに連結しないでください。SQL インジェクション攻撃にさらされます。

申し訳ありませんが、stackoverflow は初めてです。コメントボタンが表示されない

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

他に何かコメントしてください。

于 2012-11-01T11:35:48.280 に答える
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 に答える