2016-04-30 9 views
1

グリッドビュー内の項目情報をデータベースから、名前を使用して表示したい、グリッドビューを別のページに表示したい 私はこのコードを試しましたが、それはあなたのクエリは私にオフになりますアイテムを名前で検索し、別のページにコンテンツを表示する

protected void Page_Load(object sender, EventArgs e) 
    { 
     SqlConnection con = new SqlConnection(@"Data Source=FATIMAH;Initial Catalog=makeup;Integrated Security=True"); 
     string find = "select * from product where(name like '%' [email protected]+ '%')"; 
     SqlCommand comm = new SqlCommand(find, con); 

     comm.Parameters.Add("@name", SqlDbType.NChar).Value = txt; 
     con.Open(); 
     comm.ExecuteNonQuery(); 
     SqlDataAdapter da = new SqlDataAdapter(); 
     da.SelectCommand = comm; 
     DataSet ds = new DataSet(); 
     da.Fill(ds, "name"); 
     GridView1.DataSource = ds; 
     GridView1.DataBind(); 
     con.Close(); 
    } 
} 

答えて

0

QueryStringを使用して別のページにパラメータを渡すことができます。

protected void Button1_Click(object sender, EventArgs e) 
    { 
     string search_word = TextBox1.Text.ToString(); 
     Response.Redirect("~/secondpage.aspx?srch_word=" + search_word); 
    } 

と第2のページリクエストクエリ文字列に: - - :

protected void Page_Load(object sender, EventArgs e) 
    { 
     string search = Request.QueryString["srch_word"]; 
     //execute sql query to perform search operation 
    } 
onclickの最初のページ上のボタンのイベントは、これを行います
0

2ページ目の最初のページに

protected void Page_Load(object sender, EventArgs e) 
    { 
    } 

    public string txt 
    { 
     get 
     { 
      // Return the actual name if it is not null. 
      return TextBox1.Text ?? string.Empty; 
     } 

    } 
    } 

を動作しませんでした。あなたのパラメータについても"select * from product where name like '%@name%'"

を試してみてくださいすることができますだけでcmd.Parameters.AddWithValue("name", nameVariable);あなたはこのような状況で型を指定する必要がありますなぜ

わかりません。

0

問題はSQLクエリではありません。問題はパラメータを別のページに渡していることです。 少なくとも4つの異なる方法でこれを行うことができます。

  1. がポストデータを経由して、それを渡すクエリ文字列でテキストを送信
  2. は、クエリ文字列を使用することができ、この場合には、セッション

経由で送るクッキーを経由して、それを渡していますセキュリティの問題を気にする必要があります。 ところで、2ページ目にリダイレクトする方法によって異なります。

関連する問題