在SQL搜索后从String结果创建链接

时间:2014-10-08 12:02:44

标签: c# sql asp.net hyperlink sql-search

我已成功搜索我的数据库表以查找我想要的内容并将其传递给DataTable(dt)。 我的想法是,我希望(在搜索之后)将某人重定向到他喜欢的结果页面。

所以如果他搜索“迈克尔”的例子,我想给他看一下,迈克尔这个名字作为一个链接,如果他按下它就会将他重定向到他的页面,这是由〜/ Default.aspx制作的? =“+ id(id也会在搜索后生成并转换为字符串)。

我的代码:

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/>");
            }

据我所知,我想在搜索后创建一个重定向到用户个人资料的链接。

感谢任何帮助, 在此先感谢!!!

迈克尔。

2 个答案:

答案 0 :(得分:0)

这样的事情?

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

答案 1 :(得分:0)

我个人更喜欢使用

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

主要是@Mikhail Timofeev所说,但只是稍加修改。

解释

Page.ResolveUrl:确保相对于用户在您网站的树中的位置进行引用,以便客户端(浏览器)可以使用它(请参阅Source)。

对于我来说,

dr["First_Name"] + ""是首选,以防DBNull.Value可能来到此处,如果发生则可能会失败。