Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: Базы данных, ADO.NET
Войти
Регистрация
Восстановить пароль
 
BlueZa
0 / 0 / 0
Регистрация: 18.12.2015
Сообщений: 42
1

Не удалось привести тип объекта "ТоварRow" к типу "System.Data.DataRowView"

22.04.2017, 10:40. Просмотров 404. Ответов 9

Здравствуйте, делаю приложение-магазин компьютерных комплектующих и др. При создании корзины возникли проблемы, точнее проблемы с фильтром, после фильтрации в DGView данным кодом:

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 void textBox1_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                    var query = from o in this.pCSHOP_DBDataSet.Товар
                                where o.Имя_Товара.Contains(textBox1.Text)
                                select o;
 
                    товарBindingSource1.DataSource = query.ToList();
            }
 
            if (e.KeyCode == Keys.Escape)
            {
                
                textBox1.Text = "";
                var query = from o in this.pCSHOP_DBDataSet.Товар
                            where o.Имя_Товара.Contains(textBox1.Text)
                            select o;
 
                товарBindingSource1.DataSource = query.ToList();
 
            }
        }
не добавляются значения в другую таблицу

C#
1
2
3
4
5
6
7
8
 private void Save_BD_Button_Click(object sender, EventArgs e)
        {
           var drw = ((PCSHOP_DBDataSet.ТоварRow)((DataRowView)товарBindingSource1.Current).Row);
 
                корзинаTableAdapter.Insert(drw.Имя_Товара, drw.Тип_Товара, drw.Цена, drw._Кол_во);
                корзинаTableAdapter.Update(pCSHOP_DBDataSet.Корзина);
                корзинаTableAdapter.Fill(pCSHOP_DBDataSet.Корзина);
        }
ошибка Не удалось привести тип объекта "ТоварRow" к типу "System.Data.DataRowView".
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.04.2017, 10:40
Ответы с готовыми решениями:

Ошибка "Не удалось привести тип объекта "System.Data.DataRowView" к типу "System.IConvertible""
Здравствуйте,столкнулся с некой ошибкой.Привязал данные к comboBox пытаюсь...

Обновление источника данных и ошибка "Не удалось привести тип объекта "System.Data.DataView" к типу "System.Data.IDataReader"
Доброй ночи. При попытке обновления источника данных, выбрасывает следущую...

Не удалось привести тип объекта "System.String" к типу "System.Byte[]"."
Имеется код для получения картинки из бд ,но выбивает ошибку Не удалось...

Как исправить ошибку ""Ссылки на тип "Component" требует его определения в "System", но его не удалось найти"?
using System; using System.Collections.Generic; using System.Data.OleDb;...

Вывод нанных в ListBox. Каждый элемент становится "System.Data.DataRowView"
Когда вывожу данные из бд в ListBox То в ListBox'е получаются строки типа:...

9
BlueZa
0 / 0 / 0
Регистрация: 18.12.2015
Сообщений: 42
22.04.2017, 11:00  [ТС] 2
Скрин ошибки
0
Миниатюры
Не удалось привести тип объекта "ТоварRow" к типу "System.Data.DataRowView"  
BlueZa
0 / 0 / 0
Регистрация: 18.12.2015
Сообщений: 42
22.04.2017, 11:07  [ТС] 3
Исходник
0
Вложения
Тип файла: rar PCSHOP.rar (7.27 Мб, 8 просмотров)
Aferuga
350 / 345 / 229
Регистрация: 20.05.2015
Сообщений: 1,005
Завершенные тесты: 1
22.04.2017, 16:50 4
Как вариант:
C#
1
2
3
4
5
6
7
           var drw = dataGridView1.Rows[dataGridView1.CurrentCell.RowIndex];
                корзинаTableAdapter.Insert(drw.Cells["Имя_Товара"].Value.ToString(),
                                           drw.Cells["Тип_Товара"].Value.ToString(),
                                           int.Parse(drw.Cells["Цена"].Value.ToString()),
                                           int.Parse(drw.Cells["_Кол_во"].Value.ToString()));
                корзинаTableAdapter.Update(pCSHOP_DBDataSet.Корзина);
                корзинаTableAdapter.Fill(pCSHOP_DBDataSet.Корзина);
0
BlueZa
0 / 0 / 0
Регистрация: 18.12.2015
Сообщений: 42
22.04.2017, 16:59  [ТС] 5
Ошибка
0
Миниатюры
Не удалось привести тип объекта "ТоварRow" к типу "System.Data.DataRowView"  
Aferuga
350 / 345 / 229
Регистрация: 20.05.2015
Сообщений: 1,005
Завершенные тесты: 1
22.04.2017, 17:08 6
зайдите в грид и переименуйте свойство Name столбцов соответственно или поставьте индексы
0
Igr_ok
376 / 357 / 175
Регистрация: 04.08.2015
Сообщений: 958
23.04.2017, 11:13 7
В чем смысл этого кода?
Цитата Сообщение от BlueZa Посмотреть сообщение
C#
1
2
корзинаTableAdapter.Insert(drw.Имя_Товара, drw.Тип_Товара, drw.Цена, drw._Кол_во);
корзинаTableAdapter.Update(pCSHOP_DBDataSet.Корзина);
Метод Update всё равно обновит все данные, в том числе и ту строку, которую вы вставляете в БД методом Insert. Получите дублирование строк.
0
BlueZa
0 / 0 / 0
Регистрация: 18.12.2015
Сообщений: 42
24.04.2017, 15:07  [ТС] 8
Теперь при поиске товаров по поисковой сроке dgview показывает отфильтрованный товар, но при попытке добавить его в корзину он добавляет товар который был в данной ячейке до сортировки (если отфильтровали и получилось 2 товара то он добавит 1 и 2 товар из не отфильтрованной таблицы)

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
private void " Добавление в корзину "(object sender, EventArgs e)
        {
           
            queryproducttext = Searchtxtbox.Text; //сохраняем значение поиска
 
            this.товарTableAdapter.Fill(this.PCSHOP_DBDataSet.Товар);  
            товарBindingSource1.DataSource = this.PCSHOP_DBDataSet.Товар;// не знаю зачем но только из за этих 2 строк продолжается работа всего след. кода
 
            var drw = ProductsDataGridView.Rows[ProductsDataGridView.CurrentCell.RowIndex];
 
            корзинаTableAdapter.Insert(drw.Cells["ИмяТовара"].Value.ToString(),
                                       drw.Cells["ТипТовара"].Value.ToString(),
                                       int.Parse(drw.Cells["Цена"].Value.ToString()),
                                       int.Parse(drw.Cells["Кол_во"].Value.ToString()));
 
            корзинаTableAdapter.Update(PCSHOP_DBDataSet.Корзина);
            корзинаTableAdapter.Fill(PCSHOP_DBDataSet.Корзина);
 
            Searchtxtbox.Text = queryproducttext; // возвращаем результат
 
            var query = from o in this.PCSHOP_DBDataSet.Товар
                         where o.Имя_Товара.Contains(Searchtxtbox.Text)
                         select o;
 
            товарBindingSource1.DataSource = query.ToList(); // приводим к исходному виду
        }
0
Aferuga
350 / 345 / 229
Регистрация: 20.05.2015
Сообщений: 1,005
Завершенные тесты: 1
24.04.2017, 16:30 9
Уберите Update
0
BlueZa
0 / 0 / 0
Регистрация: 18.12.2015
Сообщений: 42
24.04.2017, 16:51  [ТС] 10
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
private void " Добавление в корзину "(object sender, EventArgs e)
        {
           
            queryproducttext = Searchtxtbox.Text; //сохраняем значение поиска
 
            this.товарTableAdapter.Fill(this.PCSHOP_DBDataSet.Товар);  
            товарBindingSource1.DataSource = this.PCSHOP_DBDataSet.Товар;// не знаю зачем но только из за этих 2 строк продолжается работа всего след. кода
 
            var drw = ProductsDataGridView.Rows[ProductsDataGridView.CurrentCell.RowIndex];
 
            корзинаTableAdapter.Insert(drw.Cells["ИмяТовара"].Value.ToString(),
                                       drw.Cells["ТипТовара"].Value.ToString(),
                                       int.Parse(drw.Cells["Цена"].Value.ToString()),
                                       int.Parse(drw.Cells["Кол_во"].Value.ToString()));
 
            корзинаTableAdapter.Update(PCSHOP_DBDataSet.Корзина);
            ///корзинаTableAdapter.Fill(PCSHOP_DBDataSet.Корзина);////////////////////////////удалил
 
            Searchtxtbox.Text = queryproducttext; // возвращаем результат
 
            var query = from o in this.PCSHOP_DBDataSet.Товар
                         where o.Имя_Товара.Contains(Searchtxtbox.Text)
                         select o;
 
            товарBindingSource1.DataSource = query.ToList(); // приводим к исходному виду
        }
удалил, то же самое выходит
0
24.04.2017, 16:51
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.04.2017, 16:51

Не удалось привязать составной идентификатор "System.Data.DataSet"
Помогите разобраться уже не знаю что делать(( public bool FindTest() ...

Ошибка: 'Не удалось загрузить тип "System.Runtime.CompilerServices.ExtensionAttribute"' при удалении записи
if (dataGridView1.RowCount <= 0) return; DataRow del =...

Подключение базы Oracle: пространства имен "OracleClient" отсутствует в пространстве имен "System.Data"
В общем есть БД на оракл. Пытаюсь ее подключить в C#. (Data > Add New Data...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru