3

我的 C# 应用程序中有一些代码从 SQL 数据库中提取数据。

DataTable在我的应用程序中的各个地方使用,并以多个DataGridViews.

但是,我只想显示 中的一些列Datatable,而不是全部。

此外,我要显示的列在每个DataGridViews.

例如

  • 在 DataGridView1 中显示第 1-3 列
  • 在 DataGridView2 中显示第 4-6 列
  • 在 DataGridView3 中显示第 7-12 列

ETC

我当然可以编写不同的代码来从 SQL 中为每个 提取所需的字段DataGridViews,但这似乎不是一个非常简洁的解决方案。

如果我可以使用DataTable从 SQL 中提取的那个,并在应用程序中对其应用多个过滤器以在每个DataGridViews.

我看着 usingDataView但是虽然这有一个Sort方法,但它似乎没有一个Filter方法

例如

DataTable table = GetDateFromSql();
DataView view = new DataView(table);
view.Sort = "FieldName";

理想情况下,我希望能够做类似的事情 -

view.Filter = "SELECT cola, colB, colC";
myDataGridView.DataSource = view;

我知道有一种RowFilter方法,但实际上,它是我要过滤的列。

如何才能做到这一点?

4

2 回答 2

9

你可以这样做:

类似问题: 在数据视图中仅显示选定的列

DataView view = new DataView(table);
DataTable table2 = view.ToTable(false, "FirstColumn", "SecondColumn", "ThirdColumn");
于 2013-10-16T09:48:15.453 回答
0

如果您不关心该列中的数据,则可以将 DataGridViewColumn 属性设置为 false。在 asp.net 网络表单中,您可以通过其名称获取列。

于 2013-10-16T09:56:01.967 回答