Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
3 / 2 / 1
Регистрация: 22.01.2016
Сообщений: 117
1

"Перенести" DataRow из одной DataTable в другую

04.11.2020, 16:17. Показов 1881. Ответов 5
Метки .net (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток.
Хочу DataRow из одной DataTable "перенести" в другую.
Столкнулся с проблемой: "Указанная строка является частью другой таблицы"

И еще вопрос, почему-то _dataTable с самого начала не null, не могу понять почему.

Вот что попробовал сделать, не помогло:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
private DataTable _dataTable;
public DataTable SelectedItems
{
    get => _dataTable ?? (_dataTable = new DataTable());
    set
    {
        _dataTable = value;
        RaisePropertyChanged();
    }
}
 
 
private void AddRecord(object parameter)
{
    if (parameter is DataRowView view)
    {
        DataRow selectedRow = view.Row;
 
        view.Row.Table.Rows.Remove(view.Row);
 
        SelectedItems.Rows.Add(selectedRow);
    }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.11.2020, 16:17
Ответы с готовыми решениями:

Не могу скопировать datarow из одной таблицы в другую.
Запускаю код, но во времени выполнения выдает ошибку: Код: public static DataSet...

DataRow и DataTable
Есть DataTable и нужно вывести по порядку значения второго столбца, все время получается вся...

DataTable in DataRow
Нужно с таблицы DataTable считать определенную строку DataRow public DataTable dataTable() {...

Перенести таблицу из одной БД в другую
Есть две базы данных в обоих базах данных есть две идентичные по структуре таблице и по названию....

С одной страницы перенести в другую
У меня есть список врачей. допустим localhost/Doctors На главной есть топ врачей localhost/ Как...

5
Модератор
Эксперт .NET
15466 / 10712 / 2786
Регистрация: 21.04.2018
Сообщений: 31,532
Записей в блоге: 2
04.11.2020, 20:58 2
Цитата Сообщение от Dissolve Посмотреть сообщение
И еще вопрос, почему-то _dataTable с самого начала не null, не могу понять почему.
Что-то вы не так проверял.
Поле _dataTable до вызова конструктора будет null.

И такая как у вас инициализация бессмысленна.
Если у вас не объявлено конструкторов, то нужно
C#
1
2
3
4
private DataTable _dataTable = new DataTable() ;
public DataTable SelectedItems
{
    get => _dataTable;
Если конструкторы объявлены, то можно устанавливать значение свойства в конструкторе по умолчанию.

Цитата Сообщение от Dissolve Посмотреть сообщение
Хочу DataRow из одной DataTable "перенести" в другую.
Столкнулся с проблемой: "Указанная строка является частью другой таблицы"
Ну, и что вас здесь удивляет?
Надо переписывать не строки, а элементы одной строки в коллекцию элементов строки другой таблицы.

И для чего вам, вообще, таблица?
Раз вы используете RaisePropertyChanged(); значит у вас WPF приложение.
А для WPF приложений DataTable очень плохо подходит.
Только в каких-то очень редких, специфических сценариях.
0
3 / 2 / 1
Регистрация: 22.01.2016
Сообщений: 117
04.11.2020, 21:05  [ТС] 3
Элд Хасп,
Ну мне в моем случае нужно использовать именно DataTable.
На данный момент решил проблему следующим образом:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
private void AddRecord(object parameter)
{
    if (parameter is DataRowView view)
    {
        if (_dataTable.Rows.Count == 0)
        {
            _dataTable = view.Row.Table.Clone();
        }
 
        SelectedItems.ImportRow(view.Row);
        RaisePropertyChanged("SelectedItems");
 
        view.Row.Table.Rows.Remove(view.Row);
    }
}
Еще такой вопрос, я хочу фильтровать строки из DataGrid в зависимости от введенного текста в TextBox
0
Модератор
Эксперт .NET
15466 / 10712 / 2786
Регистрация: 21.04.2018
Сообщений: 31,532
Записей в блоге: 2
04.11.2020, 21:09 4
Цитата Сообщение от Dissolve Посмотреть сообщение
Ну мне в моем случае нужно использовать именно DataTable.
На данный момент решил проблему следующим образом:
Очень сомнительно, особенно глядя на реализацию.
Скорее всего вы делаете как УМЕЕТЕ, а ни как НАДО.

Цитата Сообщение от Dissolve Посмотреть сообщение
Еще такой вопрос, я хочу фильтровать строки из DataGrid в зависимости от введенного текста в TextBox
И что этому мешает?
0
3 / 2 / 1
Регистрация: 22.01.2016
Сообщений: 117
04.11.2020, 21:10  [ТС] 5
Элд Хасп
Не знаю как реализовать
0
Модератор
Эксперт .NET
15466 / 10712 / 2786
Регистрация: 21.04.2018
Сообщений: 31,532
Записей в блоге: 2
04.11.2020, 21:24 6
Цитата Сообщение от Dissolve Посмотреть сообщение
Не знаю как реализовать
Глядя на ваш код этого никто не сможет сказать.

В общем же, для сортировки, фильтровки, группировки в GUI WPF используется ICollectionView через CollectionViewSource.
Но у DataTable есть и сво` представление для подобного - DataView.
Прочитайте как его использовать.
0
04.11.2020, 21:24
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.11.2020, 21:24
Помогаю со студенческими работами здесь

При добавлении колонок с данными из одной DataTable в другую перестают работать триггеры
Доброго всем дня! Есть 2 таблицы данных с одинаковым количеством строк. Таблицы представляют собой...

Несколько одинаковых внешних ключей в одной таблице или перенести несколько столбцов из одной табл в другую
Здравствуйте, такая вот ситуация: Есть две проблемные таблицы в бд (в качестве примера): ...

как добавить DataRow[] в DataTable
Дело в том, что Table.Select возращает массив строк, и как их можно добавить в другую таблицу....

Перенести переменные одной формы в другую
Доброго времени суток. Вот код первой формы: using System; using System.Collections.Generic;...

Перенести запись с одной вкладки на другую
На главной странице сайта находятся посты, которые добавляются пользователями. Можно ли реализовать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru