2014-10-08 64 views
0

我已經成功地在我的數據庫表中搜索我想要的內容,並將它傳遞到DataTable(dt)中。 這個想法是,我想(搜索後)將某人重定向到他喜歡的結果頁面。因此,如果他搜索例如「邁克爾」,我想給他看,名字邁克爾作爲一個鏈接,如果他按下它將他重定向到他的頁面,這是由〜/ Default.aspx?電子郵件=「+編號(ID也導致搜索後,並強制轉換爲字符串)在SQL搜索後從字符串結果創建鏈接

我的代碼:

protected void Button1_Click1(object sender, EventArgs e) 
     { 

      DataTable PassRecord = new DataTable(); 


      String str = "select First_Name,Surname,id from ID where (First_Name like '%'+ @search +'%') OR (Surname like '%'+ @search +'%') OR (Email_Account like '%'+ @search +'%')"; 


      SqlCommand Srch = new SqlCommand(str, con); 
      Srch.Parameters.Add("@search", SqlDbType.NVarChar).Value = TextBox1.Text; 



      con.Open(); 
      Srch.ExecuteNonQuery(); 
      SqlDataAdapter da = new SqlDataAdapter(); 
      da.SelectCommand = Srch; 


      DataTable dt = new DataTable(); 
      DataSet ds = new DataSet(); 
      da.Fill(dt); 



      foreach (DataRow dr in dt.Rows) 
      { 


       var field = dr["First_Name"].ToString(); 
       Response.Write(field); 
       Response.Write("<br/>"); 
      } 

爲u明白我想創建一個鏈接重定向到用戶的搜索後,個人資料。

任何幫助表示讚賞, 在此先感謝!

Michael。

回答

0

我個人比較喜歡使用

var field = "<a href='" + Page.ResolveUrl("~/Default.aspx?Email=" + dr["id"]) + "'>" + (dr["First_Name"] + "").ToString() + "</a>"; 

這主要是由於@Mikhail季莫費耶夫說,但細小的改動。

說明

Page.ResolveUrl:保證相對指的是用戶在你的網站的樹,以便它可以通過客戶端(瀏覽器)使用(見Source)。

dr["First_Name"] + ""是首選,對我來說,如果DBNull.Value可能會出現在這裏,如果它發生可能會失敗。

+0

這兩個都讓我到下一步,但博士[「First_Name」] +「」沒有在Null失敗,現在是我的新問題,因爲當它到達默認用戶頁面會話爲空:p – frcake 2014-10-08 13:27:23

0

這樣的事情?

var field = "<a href='/Default.aspx?Email="+dr["id"]+"'>"+ dr["First_Name"].ToString()+"</a>";