从System.Data.Common.DataRecordInternal中检索值

时间:2014-06-11 10:08:49

标签: c# wpf

我希望检索绑定到sqlexecute查询的datagrid的值。

    defects.DefectsDataGrid.DataContext = searchQuery.ExecuteReader();

然后,我使用SelectedCellsChanged事件对选中的DataGridRow执行某些操作。

当我输入断点时,我可以看到System.Data.Common.DataRecordInternal>下面的值。非公开会员> _values。但我不确定如何引用_Values。

感谢您一如既往的帮助。

代码

    private void DefectsDataGrid_SelectedCellsChanged(object sender, SelectedCellsChangedEventArgs e)
    {
        //Retrieve selected row
        var rows = DefectsDataGrid.SelectedItems;

        //This tells me I have one row, which is of type System.Data.Common.DataRecordInternal
        //How do I retrieve the values from this type?

    }

2 个答案:

答案 0 :(得分:0)

您似乎需要使用DataReader将记录投射到IDataRecord

请参阅此答案:https://stackoverflow.com/a/6034408/414314

答案 1 :(得分:0)

    defects.DefectsDataGrid.DataContext = searchQuery.ExecuteReader();

我将上面改为以下内容,它给了我一个数据类型DataRowView而不是DataRecordInternal

    defects.DefectsDataGrid.ItemsSource = DataTable.DefaultView;

这使我可以轻松引用事件中的行。

    private void DefectsDataGrid_SelectedCellsChanged(object sender, SelectedCellsChangedEventArgs e)
    {
        //Retrieve selected value from the row selected
        DataRowView dataRow = (DataRowView)DefectsDataGrid.SelectedItem;
        string phrase = dataRow[2];
    }