我使用此代码来搜索和过滤从DataGridView连接2表(内部连接)的数据,但没有任何事情发生! 这里是代码:DataGridView搜索和筛选数据在C#
DataTable dt;
protected void Page_Load(object sender, EventArgs e)
{
string sql = @"SELECT Invoice.[InvoiceID], Invoice.[CustomerID], Invoice.[Date], Invoice.[Amount], Invoice.[Paid], Invoice.[Rest], Invoice.[PaymentType], Invoice.[Shipped], Customer.[CustomerID], Customer.[Name], Customer.[Tell], Customer.[Address], Customer.[Comment] FROM [Invoice] INNER JOIN [Customer] ON Invoice.[CustomerID] = Customer.[CustomerID]";
using (var conn = new SqlConnection(ConfigurationManager.ConnectionStrings["RechnungConnectionString"].ConnectionString))
using (var cmd = new SqlCommand(sql, conn))
{
conn.Open();
SqlDataAdapter sda = new SqlDataAdapter();
sda.SelectCommand = cmd;
dt = new DataTable();
sda.Fill(dt);
cmd.ExecuteNonQuery();
GridView1.DataSource = dt;
GridView1.DataBind();
conn.Close();
}
}
protected void TextBox1_TextChanged(object sender, EventArgs e)
{
DataView DV = new DataView(dt);
DV.RowFilter = string.Format("Name LIKE '%{0}%'", TextBox1.Text);
GridView1.DataSource = DV;
}
,这是文本框和GridView在Asp.net形式:
<asp:TextBox ID="TextBox1" runat="server" OnTextChanged="TextBox1_TextChanged"></asp:TextBox>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" DataKeyNames="InvoiceID" CssClass="table table-striped table-bordered" AllowSorting="true">
如果有一个人知道如何解决这一问题或在搜索和过滤数据有更好的办法GridView PLZ帮助我!
我试试这个,但没有发生aggain :),并且这个代码中有一些小错误,像(adp1是sda)或Sqlcommand在TextChanged中没有连接! (Shoma ham hamintoor) – 2014-08-31 06:20:18
U假设有一个连接字符串变量。但正如@SURFThru所说,你的page_load事件可能会触发。核实。 – 2014-08-31 06:37:26
我修复了搜索文本框,但现在的问题是,当我在文本框中写入时,我不得不按下ENTER,你是否知道任何类似KeyPress(在Windows窗体中)的事件处理程序在asp.net中工作? – 2014-08-31 09:18:14