Вам необходимо использовать SqlParameter с командой sql.
и вам не хватает логики. Во-первых, когда форма загружается в этот момент, вам нужно привязать полные данные таблицы элементов к своей таблице. Десять у вас будет текстовое поле и кнопка, где вы хотите отфильтровать таблицу.
Вот ваш полный код. Используй это. 100% работает.
<div id = "dvFilterGrid">
Filter Grid : <asp:TextBox ID="txtFilter" runat="server"></asp:TextBox>
<asp:Button ID="btnFilterGrid" runat="server" Text="Find"
onclick="btnFilterGrid_Click" />
</div>
и ваш код
public partial class _Default : System.Web.UI.Page
{
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ToString());
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindGridData();
}
}
protected void BindGridData()
{
con.Open();
using (SqlCommand cmd = new SqlCommand("Select * from Items", con))
{
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
GridView1.DataSource = dt;
GridView1.DataBind();
}
}
protected void btnFilterGrid_Click(object sender, EventArgs e)
{
int ItemId = Convert.ToInt32(txtFilter.Text.Trim());
FilterData(ItemId);
}
private void FilterData(int ItemId)
{
string query = "select * from Items where ItemId=@ItemId ";
SqlCommand cmd = new SqlCommand(query,con);
cmd.Parameters.Add(new SqlParameter("@ItemId", ItemId));
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds,"Items");
GridView1.DataSource = ds;
GridView1.DataBind();
}
}