2014-09-24 42 views
0

数据表和表演环节我有这样的问题:数据库,为结果

我有一些表的数据库,即时通讯填充数据集的所有信息,并张贴在GridView上。

整个想法是在用户数据库中进行搜索,现在我想要做的是从数据集中排除信息,使用表中的ID,这样我就可以将搜索结果重定向到新配置文件,该配置文件必须是通过链接完成。

所以,我想要的是得到它的onclick他们将用户重定向到配置文件链接的结果。

这是一个Web应用程序。

namespace DisplayingImages 
{ 
    public partial class WebForm7 : System.Web.UI.Page 
    { 
     SqlConnection con = new SqlConnection("ConnectionString"); 

     protected void Page_Load(object sender, EventArgs e) 
     { 

     } 
     protected void Button1_Click1(object sender, EventArgs e) 
     { 
      int i=0; 
      DataTable PassRecord = new DataTable(); 
      String str = "select First_Name,Surname 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();  
      GridView1.DataSource = ds; 
      GridView1.DataBind(); 
      con.Close(); 
     } 
    } 
} 
+2

当您使用SELECT语句时,不需要'ExecuteNonQuery'。 – 2014-09-24 07:45:31

回答

0

您使用一个空的数据集。你必须填写它,否则你将有一个空的gridview。

da.Fill(ds); 

像Soner说的你不必使用ExecuteNonQuery。改用ExecuteQuery。
的executeQuery:当你从数据库中选择数据,然后使用这个
的ExecuteNonQuery:当您插入或更新的数据到数据库中,然后使用这个

有,你可能已经在使用RowDataBound事件。
我不能看到,从这段代码。
但在那里你必须填写的联系。
如果你没有它那么这里就是一个例子。

在前台你做这样的事

<asp:GridView ID="Gridview" runat="server" OnRowDataBound="Gridview_RowDataBound"> 
    <Columns> 
     <asp:TemplateField> 
      <ItemTemplate> 
       <asp:Hyperlink runat="server" ID="link" /> 
      </ItemTemplate> 
     </asp:TemplateField> 
    </Columns> 
</asp:GridView> 


并在后面的代码。

protected void Gridview_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
    //Get data row view 
    DataRowView dataRow = ((e.Row.DataItem)DataRowView); 
    if (e.Row.RowType == DataControlRowType.DataRow) 
    { 
     var link = ((HyperLink)e.FindControl("Link")); 
     link.Text = "some text"; 
     link.NavigateUrl = String.Format("{0}?id={1}", page, dataRow.ID); 
    } 
} 

我已经这样做了,因为它不是我的头,所以它不完全复制粘贴,但你明白了。
你也可以绑定一个onclick事件,但这会让它更难一点。
在目标url中,您可以使用querystring读取该id并再次从数据库中获取数据。

+0

嗨,谢谢你的回答! – frcake 2014-09-26 07:27:03

+0

您的欢迎,很高兴我可以帮助:) – VRC 2014-09-26 07:51:11