我试图筛选已绑定到数据集的datagridview一个DataGridView。问题是,当我在我的文本框中输入数据时,应用程序停止,错误是我试图过滤的列不存在。我试图使用字符串查询填充datagridview,并且过滤工作正常,但我无法更新datagridview(我不知道为什么)。这就是为什么我用数据集而不是查询填充它。有什么建议么?这是我有:过滤绑定到数据集一个文本框C#
DataTable dt = new DataTable("Items");
private void LoadDataGrid()
{
using (SqlDataAdapter da = new SqlDataAdapter("SELECT Items.ItemID AS #, Items.SerialNo AS 'SERIALNO', Items.Description AS DESCRIPTION, Items.MaxVoltage, Items.FrameSize, Items.ArrivalDate, Items.DepartureDate, Items.Notes, Items.MechType, Items.[Fix-Drawout], CONCAT(Location.Rack, Location.Row, Location.Columnn, Location.Position) AS LOCATION, ItemStatus.Description AS STATUS, Type.Description AS TYPE, Manufacturers.Description AS MANUFACTURERS FROM Items INNER JOIN Location ON Items.LocationID = Location.LocationID INNER JOIN ItemStatus ON Items.Status = ItemStatus.StatusID INNER JOIN Type ON Items.TypeID = Type.TypeID INNER JOIN Manufacturers ON Items.ManufacturerID = Manufacturers.ManufacturerID", AEAcnn))
{
da.Fill(dt);
dataGridView1.DataSource = dt;
}
}
这是我使用的过滤器表达式(与组合框)
private void txtFilter_KeyPress(object sender, KeyPressEventArgs e)
{
if (cmbFilterSearch.Text == "TYPE")
{
DataView dv = dt.DefaultView;
dv.RowFilter = string.Format("TYPE LIKE '%{0}%'", textBox14.Text);
dataGridView1.DataSource = dv.ToTable();
}
}
应用崩溃时,列类型不能被发现,即使名称实际上是TYPE。
这个问题会更好,如果你包括你的代码尝试人们审查。 – silentsod
我的坏!有我的。 –
您尚未显示您正在使用的过滤器表达式 – stuartd