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

本文关键字:检索 DataRecordInternal Common System Data | 更新日期: 2023-09-27 18:08:19

我希望检索绑定到sqlexecute查询的数据网格的值。

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

然后,我使用SelectedCellsChanged事件与选定的DataGridRow做一些事情。

当我放入一个断点时,我可以看到System.Data.Common.DataRecordInternal> Non-public Members> _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?
    }

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

看起来您需要使用DataReader将您的记录转换为IDataRecord

查看答案:https://stackoverflow.com/a/6034408/414314

    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];
    }