在SQL搜索后从字符串结果创建链接

本文关键字:结果 创建 链接 字符串 SQL 搜索 | 更新日期: 2023-09-27 18:25:52

我已经成功地搜索了我想要的DB表,并将其传递到DataTable(dt)中。这个想法是,我想(在搜索之后)将某人重定向到他喜欢的结果页面。

因此,如果他搜索例如"Michael",我想向他显示Michael这个名字作为链接,如果他按下它,就会将他重定向到他的页面,该页面由~/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/>");
            }

据你所知,我想创建一个链接,在搜索后重定向到用户配置文件。

感谢任何帮助,提前感谢!!!

迈克尔。

在SQL搜索后从字符串结果创建链接

我个人更喜欢使用

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

这主要是如@Mikhail Timofeev所说,但有微小的修改。

解释

Page.ResolveUrl:确保相对于用户在网站树中的位置,它可以被客户端(浏览器)使用(请参阅来源)。

对我来说,在DBNull的情况下,dr["First_Name"] + ""是首选。值可能会出现在这里,如果发生这种情况,可能会失败。

这样的东西?

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