2016-12-04 3 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

Смежные вопросы