2013-10-16 58 views
4

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

DataTable用于我的应用程序的各个位置,并显示在多个DataGridViews

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

此外,我想要显示的列在每个DataGridViews中都不相同。

例如

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

我当然可以只写不同的代码来为每个DataGridViews从SQL中提取必需的字段,但这看起来并不像一个非常简洁的解决方案。

如果我可以使用从SQL中提取的一个DataTable,并在应用程序中应用多个过滤器以在每个DataGridViews中显示不同的列,那会更好。

我看着使用DataView不过,虽然这有一个Sort方法,它似乎并不具有Filter方法

例如

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

理想情况下,我想能够做这样的事情 -

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

我知道有一个RowFilter方法,但实际上,它的列我要筛选。

这怎么办?

回答

9

你可以做这样的事情:

类似的问题: Showing only selected column in dataview

DataView view = new DataView(table); 
DataTable table2 = view.ToTable(false, "FirstColumn", "SecondColumn", "ThirdColumn"); 
+0

感谢你们俩 – PJW

0

您可以设置的DataGridViewColumn属性可见假的,如果你不了解该列中的数据服务。在asp.net web窗体中您可以通过名称获取列。