我正在創建一個網站。主頁有一個文本框和下拉框,用戶在其中輸入要搜索的電影名稱和語言。當用戶點擊搜索按鈕時,顯示搜索結果頁面,搜索結果應顯示在數據網格中。我創建了會話變量來傳遞要在其他頁面中使用的文本框和數據網格的文本。從數據庫中獲取數據的代碼是在一個類中,我如何將從數據庫接收到的值傳遞給另一個頁面的方法?這是我寫的代碼,它沒有給出任何錯誤,但數據網格沒有得到結果填充我做錯了什麼?將一個類的值傳遞給另一個類的方法
//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 2012-02-15 16:50:12