Я пытаюсь создать окно поиска в своем приложении, для этого мне нужно изменить SqlDataSource.SelectCommand. Буду признателен за любую помощь!Изменить SqlDataSource.SelectCommand с помощью хранимой процедуры с параметрами
Для тестирования я сделал это так, он работает, но она уязвима для SQL инъекций
SqlDataSource1.SelectCommand = "sp_offer_search '" + txtSearch.Text + "', " + Session["customerId"] + " , '" + "Pending"+ "'";
GridView1.DataBind();
Это то, что я пытался до сих пор, но он не работает:
if (txtSearch.Text != "")
{
//open connection
oCn.Open();
SqlCommand com = new SqlCommand(query, oCn);
com.CommandType = CommandType.StoredProcedure;
com.Parameters.AddWithValue("@Variable", txtSearch.Text);
com.Parameters.AddWithValue("@CustomerId",Session["customerId"]);
com.Parameters.AddWithValue("@Status", txtStatus.Text);
DataTable dt = new DataTable();
dt.Load(com.ExecuteReader());
SqlDataSource1.SelectCommand = dt.ToString();
GridView1.DataBind();
}
Как это работает? Получаете ли вы ошибку или неверные данные, или ничего не возвращали? Что-то другое? –
ничего не возвращает, похоже, что он не нашел соответствия – Carlos
Вы должны проверить [Можем ли мы остановить использование AddWithValue() уже?] (Http://blogs.msmvps.com/jcoehoorn/blog/2014/ 05/12/can-we-stop-using-addwithvalue-уже /) и прекратить использование '.AddWithValue()' - это может привести к неожиданным и неожиданным результатам ... –