2016-12-04 81 views
0

并感谢您花时间阅读我的文章!这是非常赞赏。我对ASP.Net非常陌生,我试图创建一个简单的页面,可以在我的SQL Server数据库上搜索表格。服务器简单搜索功能

这里是asp.net代码:

<%@ Page Language="C#" MasterPageFile="~/PantryAdmin.Master" AutoEventWireup="true" CodeFile="ProductSearch.aspx.cs" Inherits="RampantryF.ProductSearch" %> 


    <asp:Content runat="server" ContentPlaceHolderID="ContentPlaceHolder1"> 

    <div> 



     <asp:TextBox ID="SearchBox" runat="server"></asp:TextBox> 



     <asp:Button ID="Button1" runat="server" Text="Search" OnClick="Button1_Click" /> 

    <asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="False"> 
    </asp:GridView> 
     <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:fall16_g8ConnectionString %>" SelectCommand="SELECT * FROM [PRODUCT]"></asp:SqlDataSource> 
</div> 

     </asp:Content> 

我后面的代码:

using System; 
using System.Collections.Generic; 
using System.Configuration; 
using System.Data; 
using System.Data.SqlClient; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 

namespace RampantryF 
{ 
    public partial class ProductSearch : System.Web.UI.Page 
    { 
     SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["fall16_g8ConnectionString"].ConnectionString); 
     protected void Page_Load(object sender, EventArgs e) 
     { 

     } 

     protected void Button1_Click(object sender, EventArgs e) 
     { 
      string find = "select * from PRODUCT where(PRODUCT_NAME like '%' + @PRODUCT_NAME + '%')"; 
      SqlCommand comm = new SqlCommand(find, con); 
      comm.Parameters.Add("@PRODUCT_NAME", SqlDbType.NVarChar).Value = SearchBox.Text; 

      con.Open(); 
      comm.ExecuteNonQuery(); 
      SqlDataAdapter da = new SqlDataAdapter(); 
      da.SelectCommand = comm; 
      DataSet ds = new DataSet(); 
      da.Fill(ds, "PRODUCT_NAME"); 

      GridView2.DataSource = ds; 
      GridView2.DataBind(); 

      con.Close(); 
     } 
    } 
} 

的页面加载罚款,但是当你按下“搜索”按钮,它只是刷新页面,而不是将数据加载到gridview中。我想知道发生了什么以及我如何修复它。

让我知道是否需要其他信息。我很乐意提供。

谢谢!

+0

您是否检查数据集是否包含任何数据表?那些数据表中有任何值? –

回答

0

做你的代码的一些变化,检查等参数如何分配

protected void Button1_Click(object sender, EventArgs e) 
{ 
    string find = "select * from PRODUCT where PRODUCT_NAME like @PRODUCT_NAME"; 
    SqlCommand comm = new SqlCommand(find, con); 
    comm.Parameters.Add("@PRODUCT_NAME", SqlDbType.NVarChar).Value = "%"+ SearchBox.Text + "%"; 
    SqlDataAdapter da = new SqlDataAdapter(comm); 
    DataSet ds = new DataSet(); 
    da.Fill(ds, "PRODUCT_NAME"); 
    GridView2.DataSource = ds.Tables[0]; 
    GridView2.DataBind(); 

} 

也改变了在的AutoGenerateColumns aspx页面为真。

<asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="true"> 
    </asp:GridView> 
+0

非常感谢! – Jessi

+0

如果它帮助您解决问题,请将其标记为答案 – Damith