当我尝试使用下面这行代码时:
cboSite.DataBindings.Add("Text", _dtSite.Select("Site <> 'ALL'"), "Site")
我得到了以下异常:
异常:无法绑定到DataSource上的属性或列站点。{10}参数名称: dataMember
详细信息我连接到Access数据库,使用.net 3.5并用VB编写代码。在这个数据库中,我有一个名为Sites的表,其中有一个名为Site的列,当我尝试使用上面的代码行时,我得到了异常提示。我的印象是我可以显式地命名需要在我的控件(组合框)中使用的列。我做错了什么?
发布于 2010-09-20 23:30:14
这是因为.Select()语句产生的结果会产生一个DataRows集合的输出,而您需要的是绑定到一个经过过滤的DataTable源。您可以做的是首先筛选行,将筛选的行放入原始DataTable的克隆中,然后绑定到筛选的DataTable。此代码示例如下:
'Begin by returning an array of DataRows that have been filtered
Dim filterdRows() As DataRow = _dtSite.Select("Site <> 'ALL'")
'Clone the original DataTable which will give us an empty one
'with an identical structure.
Dim _dtFiltered As DataTable = _dtSite.Clone
For Each drFiltered As DataRow In filterdRows
'Import the rwo into the filtered table
_dtFiltered.ImportRow(drFiltered)
Next
'Bind the ComboBox to the filtered DataTable
cboSite.DataBindings.Add("Text", _dtFiltered, "Site")
希望这能有所帮助!
https://stackoverflow.com/questions/3741820
复制相似问题