Я создаю веб-сайт. На домашней странице есть текстовое поле и раскрывающееся окно, в котором пользователь вводит имя и язык фильма для поиска. Когда пользователь нажимает кнопку «Поиск», отображается страница результатов поиска, и результаты поиска должны отображаться в сетке данных. Я создал переменные сеанса для передачи текста текстового поля и сетки данных, которые будут использоваться на другой странице. Код для извлечения данных из базы данных относится к классу, как передать значения, полученные из базы данных, методу другой страницы? Это код, который я написал, он не дает никаких ошибок, но сетка данных не заполняется результатами, что я делаю неправильно?Передача значений из класса методу другого класса
//Code for search button in home page
protected void Btnsearch_Click(object sender, EventArgs e)
{
Response.Redirect("SearchResults.aspx");
Session["moviename"] = TextBox3.Text;
Session["language"] = DropDownList1.Text;
}
//Code to fetch data from database
public class movie
{
public SqlDataAdapter searchmovie(object moviename, object language)
{
connection.con.Open();
SqlDataAdapter adapter1 = new SqlDataAdapter("select
select movieName,language,director,price from movie
where moviename = '" + moviename + "' and
language = '" + language + "'",
return adapter1;
}
}
//Code in search page to fill data grid with search results
public partial class SearchResults : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
movie m = new movie();
SqlDataAdapter movieDetails = m.searchmovie(Session["moviename"],
Session["language"]);
DataSet data = new DataSet();
movieDetails.Fill(data, "movieD");
GridView1.DataSource = data.Tables["movieD"];
GridView1.DataBind();
}
}
При передаче коротких строк вам намного лучше использовать QueryStrings, а не Session. Если вы используете сеанс, вам нужно беспокоиться о значениях из предыдущих вызовов, которые все еще находятся там, вы забиваете сеанс данными, которые вам не нужны, как только вы показываете страницу поиска (если вы не удалите их, больше времени/усилий) вам нужно беспокоиться об использовании одних и тех же переменных сеанса в разных местах вашего приложения (вы можете или не собираетесь повторно использовать одни и те же объекты). Как правило, вы всегда должны избегать использования сеанса, если у вас нет выбора. Здесь у вас есть выбор. – Servy