Получить значения из System.Data.Common.DataRecordInternal

1

Я ищу для получения значений datagrid, связанных с запросом sqlexecute.

    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?

    }
Теги:
wpf

2 ответа

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

Похоже, вам нужно использовать DataReader для записи ваших записей в IDataRecord.

См. Этот ответ: qaru.site/questions/1948707/...

  • 0
    Franssu, я всегда помещаю свои результаты в устройство чтения данных или в таблицу данных, и у меня нет проблем с их использованием, но я хотел посмотреть, возможно ли связать напрямую с ExecuteReader, что кажется хорошим, но получение значений из обработчика событий вызывает у меня проблема. Есть идеи?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню