我正在使用一个名为ClearSCADA的Schneider产品,它允许您通过.Net接口查询其专有的后端数据库。我已成功使用此查询查询数据库:
SELECT
"Id", "FullName", "Foreground", "Blink", "Background", "TypeDesc", "MemoryUsage"
FROM
"CCustomColour"
ORDER BY
"FullName" ASC
并将结果作为QueryResult返回给我:
using System.Collections.ObjectModel;
namespace ClearScada.Client.Advanced
{
//
public class QueryResult
{
//
// Summary:
// Gets the results of the query.
public ReadOnlyCollection<QueryRow> Rows { get; }
//
// Summary:
// Gets the number of rows affected for a DML query.
public int RowsAffected { get; }
//
// Summary:
// Gets the status of the query.
public QueryStatus Status { get; }
}
}
我试图通过几种不同的方式将ReadOnlyCollection行绑定到数据网格。
dataGridViewResults.DataSource = this.MyQueryResult.Rows;
和
BindingSource bs = new BindingSource();
bs.DataSource = this.MyQueryResult.Rows;
dataGridViewResults.DataSource = bs;
网格显示一个列,仅显示行索引但没有数据:
这里是参考QueryRow类的定义:
using System.Collections.ObjectModel;
namespace ClearScada.Client.Advanced
{
//
public class QueryRow
{
//
public ReadOnlyCollection<object> Data { get; }
//
public int Index { get; }
}
}
我创建了一个QueryResult实例的本地副本,以便我可以在&#39; Locals&#39;中捕获它的视图。 Visual Studio中的窗口显示在这里:
我想要实现的是一个显示如下的视图:
请告诉我如何将这些值绑定到DataGridView?
,请帮助我答案 0 :(得分:0)
我确信必须有更好的方法,但这对我来说很有用,可以将数据传输到DataTable,然后将其绑定到DataGridView:
if(viewPager.getCurrentItem>0){
viewPager.setCurrentItem(0);
}
如果有人能解释如何将ReadOnlyCollection直接绑定到DataGridView,我将不胜感激。