Форум программистов, компьютерный форум, киберфорум
C++/CLI Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
0 / 1 / 2
Регистрация: 30.10.2012
Сообщений: 113

Как правильно извлекать и добавлять данные с DataGridView?

05.04.2014, 20:31. Показов 2379. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток, вообщем нужна ваша помощь.
Почему выводяться к примеру такие ошибки: Ошибка
C++
1
2
25  error LNK1169: юсэрЁєцхэ ьэюуюъЁрЄэю юяЁхфхыхээ√щ ёшьтюы - юфшэ шыш сюыхх    B:\╙ўхср\╬╬╧\╩╙╨╤└╫\LuggageProgram\MODLuggagge\Debug\MODLuggagge.exe    MODLuggagge
Ошибка    24  error LNK2005: "class std::basic_istream<char,struct std::char_traits<char> > & __cdecl operator>>(class std::basic_istream<char,struct std::char_traits<char> > &,class ClassLuggage &)" (??5@$$FYAAAV?$basic_istream@DU?$char_traits@D@std@@@std@@AAV01@AAVClassLuggage@@@Z) єцх юяЁхфхыхэ т ClassLuggage.obj    B:\Учеба\ООП\КУРСАЧ\LuggageProgram\MODLuggagge\MODLuggagge\ClassLuggageStoragge.obj   MODLuggagge
и как правильно извлекать и добавлять данные с DataGridView, примеру я делал так:
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
27
28
private: System::Void FormLuggage_Load(System::Object^  sender, System::EventArgs^  e) {
                
                 /*Сохранение записей введенных из таблицу, в класс, для дальейшей работы*/
                 
                    System::String ^s0,^s1,^s2,^s3,^s4,^s5,^s6;
                    
                     for (int i = 0; i < dataGridView1->RowCount; i++) {//№ строки добавляем в первый столбец Cells[0]
                         dataGridView1->Rows[i]->Cells[0]->Value = (i + 1).ToString();
 
                         dataGridView1->Rows[i]->Cells[3]->Value = DateTime().Now;
 
                         s0 = dataGridView1->Rows[i]->Cells[0]->Value->ToString();
                         id += Convert::ToUInt16(s0);
                         s1 = dataGridView1->Rows[i]->Cells[1]->Value->ToString();
                         fio += Convert::ToChar(s1);
                         s2 = dataGridView1->Rows[i]->Cells[2]->Value->ToString();
                         type += Convert::ToChar(s2);
                         s3 = dataGridView1->Rows[i]->Cells[3]->Value->ToString();
                         time += Convert::ToChar(s3);
                         s4 = dataGridView1->Rows[i]->Cells[4]->Value->ToString();
                         date += Convert::ToChar(s4);
                         s5 = dataGridView1->Rows[i]->Cells[5]->Value->ToString();
                         size += Convert::ToChar(s5);
                         s6 = dataGridView1->Rows[i]->Cells[6]->Value->ToString();
                         weight += Convert::ToChar(s6);
 
                         ClassLuggage T(id, fio, type, time, date, size, weight, check);
                     }
И исходные коды классов:
класс1:
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
27
28
29
30
31
#include <ctime>
#include <cstdlib>
#include <cmath>
#include <iostream>
#include <fstream>
#include <sstream>
#include <string>
#include <iomanip>
#include <vector>
#include <iterator>
using namespace std;
class ClassLuggage {
public:
    ClassLuggage() : id(0), fio(0), type(0), time(0), date(0), size(0), weight(0), check(0), sum(0) {}
 
    ClassLuggage(int id, char *fio, char *type, char *time, char *date, char *size, double weight,char *check) : id(id), fio(fio), type(type), time(time), date(date), size(size), weight(weight), check(check) {}
    
    int getId() const;
    char* getFio() const;
    char* getType() const;
    char* getTime() const;
    char* getDate() const;
    char* getSize() const;
    double getWeight() const;
    char* getCheck() const;
    double getSum() const;
private:
    int id;
    char *fio, *type, *time, *date, *size, *check;
    double weight,sum;
};
его реализация:
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#include "ClassLuggage.h"
#include <ctime>
#include <cstdlib>
#include <cmath>
#include <iostream>
#include <fstream>
#include <sstream>
#include <string>
#include <iomanip>
#include <vector>
#include <iterator>
int ClassLuggage::getId() const { return id; }
char* ClassLuggage::getFio() const { return fio; }
char* ClassLuggage::getType() const { return type; }
char* ClassLuggage::getTime() const { return time; }
char* ClassLuggage::getDate() const { return date; }
char* ClassLuggage::getSize() const { return size; }
double ClassLuggage::getWeight() const { return weight; }
char* ClassLuggage::getCheck() const { return check; }
double ClassLuggage::getSum() const {
    if (getType() == "Великогабаритний")
        return 50 * getWeight();
    if (getType() == "Понадлімітний")
        return 100 * getWeight();
    if (getType() == "Спеціальний")
        return 250 * getWeight();
}
 
std::ofstream &operator<<(std::ofstream &stream, const ClassLuggage &luggage) {
    stream << luggage.getId() << " " << luggage.getType() << " " << luggage.getTime() << " " << luggage.getDate() << " " << luggage.getSize()
        << " " << luggage.getWeight() << " " << luggage.getCheck() << " " << luggage.getSum() << std::endl;
    return stream;
}
 
std::ostream &operator<<(std::ostream &stream, const ClassLuggage &luggage) {
    return stream << "База даних багажу{" <<
        std::fixed << std::setprecision(3) <<
        "ID=" << luggage.getId() << "," <<
        "ФІО=" << luggage.getFio() << "," <<
        "Тип багажу=" << luggage.getType() <<
        "Час обліку=" << luggage.getTime() <<
        "Дата обліку=" << luggage.getDate() <<
        "Розмір=" << luggage.getSize() <<
        "Вага=" << luggage.getWeight() <<
        "Підлеглий перевезенню?=" << luggage.getCheck() <<
        "Сума перевезення=" << luggage.getSum() << "}";
}
 
std::istream &operator>>(std::istream &stream, ClassLuggage &luggage) {
    std::string line;
    std::getline(stream, line);
    std::stringstream stringStream(line);
    int id;
    char *fio, *type, *time, *date, *size, *check;
    double weight, sum = luggage.getSum();
    stringStream >> id >> fio >> type >> time >> date >> size >> weight >> check >> sum;
    luggage = ClassLuggage(id, fio, type, time, date, size, weight, check);
    return stream;
}
класс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
27
28
29
30
31
32
33
34
35
36
37
38
39
#include <ctime>
#include <cstdlib>
#include <cmath>
#include <iostream>
#include <fstream>
#include <sstream>
#include <string>
#include <iomanip>
#include <vector>
#include <iterator>
#include "ClassLuggage.cpp"
#include <crtdefs.h>
class LuggageStorage {
public:
    typedef std::vector<ClassLuggage>::iterator Iterator;
    typedef std::vector<ClassLuggage>::const_iterator ConstIterator;
    LuggageStorage(const std::string ) : fileName(fileName),PathFile() {
    FromFile();
    }
    virtual ~LuggageStorage();
    Iterator begin() { return PathFile.begin(); }
    ConstIterator begin() const { return PathFile.begin(); }
    Iterator end() { return PathFile.end(); }
    ConstIterator end() const { return PathFile.end(); }
 
    Iterator insert(Iterator position, const ClassLuggage &luggage) {
        return PathFile.insert(position, luggage);
    }
 
    void clear();
 
    size_t getSize() const;
 
    void saveToFile();
    void FromFile();
private:
    std::string fileName;
    std::vector<ClassLuggage> PathFile;
};
его реализация:
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include "ClassLuggageStoragge.h"
#include <ctime>
#include <cstdlib>
#include <cmath>
#include <iostream>
#include <fstream>
#include <sstream>
#include <string>
#include <iomanip>
#include <vector>
#include <iterator>
#include <crtdefs.h>
 
LuggageStorage::~LuggageStorage() {
        saveToFile();
}
 
void LuggageStorage::clear() {
    PathFile.clear();
}
 
size_t LuggageStorage::getSize() const {
    return PathFile.size();
}
 
void LuggageStorage::saveToFile() {
    std::ofstream stream(fileName.c_str());
    for (ConstIterator i = PathFile.begin(); i != PathFile.end(); ++i) {
        stream << *i;
    }
}
void LuggageStorage::FromFile() {
    PathFile.clear();
    std::ifstream stream(fileName.c_str());
    while (!stream.eof()) {
        ClassLuggage luggage;
        stream >> luggage;
        if (!stream.eof()) {
            PathFile.push_back(luggage);
        }
    }
}
Пожалуйста помогите...
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.04.2014, 20:31
Ответы с готовыми решениями:

RecyclerView как правильно добавлять данные
Здравствуйте. Есть RecyclerView, с таким адаптером import android.app.Activity; import android.content.Context; import...

Как правильно отфильтровать данные в DataGridView?
При нажатии кнопки вызывается функция: private void btnSelect_Click(object sender, EventArgs e) { int nFind = 0; ...

Entity Framework. Как правильно привязывать данные к dataGridView
Здравствуйте. Подсоединил к dataGridView объект с помощью BindingSource. Представляю класс сущности:public partial class Сontact_person ...

1
Заблокирован
06.04.2014, 00:01
1. В Студии ошибки линковки иногда связаны не с кодом, а с багом самой Студии.
Перейдите в режим Release, постройте проеккт и вернитесь к Debug
2. Ваш Convert::ToChar вряд ли сработает
Конвертация строк: System::String в массив char/wchar_t, std::string и обратно
3. В Студии надо забыть все библиотеки С++ и пользоваться .NET.
У System::String есть все нужные методы, вот с этим типом и работайте.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.04.2014, 00:01
Помогаю со студенческими работами здесь

Как синхронно по дате создания извлекать данные из firestore в RV?
Нужно расположить данные от новых к старым. + нужно размещать 50 элементов RV на одной странице, а дальше по нажатию кнопок навигации...

VS 2008, C++ (Only), DataGridView. Как добавлять и выводить строки с данными в DataGridView в несвязном режиме (без готовой БД)?
Перегуглил всё, что можно. На MSDN нет кода C++. Можно ссылки (только не на С#)

Как соединить два массива данных из базы или как извлекать условно связанные данные
Здравствуйте пользователь форума У меня проблема с передачей массива из БД в шаблон т.е как соединить два массива данных из базы ...

Как правильно передать данные из таблицы DataGridView в SQL базу данных
Здравствуйте. Есть таблица DataGridView которая содержит данный которые добавляет пользователь или загружает из файла. Как мне правильно...

Как в нужной кодировке, извлекать данные из базы, выводить на страницы, посылать по e-mail?
Кто подскажет как в нужной кодировке, извлекать данные из базы, выводить на страницы, посылать по e-mail? Перекодировать из одной...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru