从DataTable中提取特定列

时间:2013-10-16 09:43:43

标签: c# sql winforms

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

DataTable用于整个应用程序的各个位置,并以多个DataGridViews显示。

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

我想要显示的列在每个DataGridViews中都有所不同。

e.g。

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

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

如果我可以使用从SQL中提取的那个DataTable并在应用程序中对其应用多个过滤器以在每个DataGridViews中显示不同的列,那会更好(我认为)。 / p>

我查看了使用DataView,但是这有一个Sort方法,它似乎没有Filter方法

e.g。

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

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

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

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

如何做到这一点?

2 个答案:

答案 0 :(得分:9)

您可以这样做:

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

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

答案 1 :(得分:0)

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