【问题标题】:find and display datarows in datagridview在 datagridview 中查找和显示数据行
【发布时间】:2019-03-13 14:12:48
【问题描述】:

我遇到了从DataTable 显示来自DataSet 的数据行的问题。我使用了一个临时表。我通过id 找到了我需要的行并将其复制到临时表中,然后在DataGridView 中显示。有什么方法可以直接从DataTableDataSetDataGridView 中查找和显示我需要的行,而不使用任何临时的DataTable's?我试图通过隐藏和取消隐藏 DataGridView 中的行来做到这一点,但遗憾的是它没有成功

private DataTable tblFiltered = 
  ds.Tables("GRAPHICS").AsEnumerable().Where(row => 
  row.Field<int>("GRAPHIC_ID") == graphId && row.Field<int> 
 ("GRAPHIC_ID")).CopyToDataTable;

【问题讨论】:

标签: c# winforms datagridview datatable


【解决方案1】:

假设DataSet 'ds' 包含表'GRAPHICS',我们可以使用DataView 在DataGridView 中显示过滤后的记录。例如。

int graphId = 2;  //Assuming

DataView dv = ds.Tables["GRAPHICS"].AsDataView();
dv.RowFilter = "GRAPHIC_ID = " + graphId;     //RowFilter :: Expression used to filter which rows are viewed !!        
dataGridView.DataSource = dv.ToTable();

【讨论】:

    【解决方案2】:

    您可以使用过滤器 (DatagridView.DataSource as DataTable).DefaultView.RowFilter = string.Format("GRAPHIC_ID= '{0}'", graphId);

    【讨论】:

    • 不应使用没有空检查的as(或?.)。
    猜你喜欢
    • 1970-01-01
    • 2014-01-07
    • 1970-01-01
    • 2012-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-26
    • 1970-01-01
    相关资源
    最近更新 更多