0

在使用 VSTO 的 Excel 2007 中,如果我使用带有以下示例列ListObject的 SQL 表:DataSet

[Year],[Month],[Unit],[Site]

你怎么能得到一个combobox使用SELECT DISTINCT [Year]相同的DataSet?作为其数据源,然后ListObject依赖于所选年份combobox

看起来很简单,但我不太熟悉使用 VSTO 和数据集、绑定源、表适配器等的正确方法......

任何帮助或有用的文章都会很棒。

谢谢

4

1 回答 1

0

DataSet我现在已经使用设计器和以下步骤弄清楚了。

  1. 右键单击 myDataTable在我的情况下称为Units.

  2. 选择Add Query

  3. 选择Use SQL Statements

  4. 选择SELECT which returns rows

  5. 将此查询添加到文本框中SELECT DISTINCT [Year] FROM [Units] ORDER BY DESC

  6. 取消选中该Fill a DataTable选项并将Return a DataTable名称更改为GetDataByDistinctYear

  7. 再次执行上述过程,但使用此 SQL 语句SELECT [Year],[Month],[Unit],[Site] FROM [Units] WHERE [Year] = @Year

  8. 然后将填充和返回数据表选项的名称更改为FillByYearGetDataByYear

  9. 这向我的UnitsTableAdapter.

  10. 然后在我的 WorkSheet 的代码 .vb 文件中,我添加了以下代码:

Private Sub Sheet1_Startup() Handles Me.Startup
...
YearComboBox.DataSource = UnitsTableAdapter.GetDataByDistinctYear()

End Sub

Private Sub YearComboBox_SelectedValueChanged(sender As Object, e As System.EventArgs) 
Handles YearComboBox.SelectedValueChanged

Me.UnitsTableAdapter.FillDataByYear(Me.UnitsDataSet.Units, YearComboBox.SelectedValue)

End Sub

我希望至少有人觉得这很有用。

谢谢

于 2013-03-01T01:46:41.347 回答