Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.01.2019, 13:07   #1
student772
Пользователь
 
Регистрация: 02.01.2019
Сообщений: 14
По умолчанию Ошибка ввода данных

Есть БД, созданная в среде SQL Server Management Studio.
Подключаю её в Visual Studio ( свойства таблиц на скринах)
Мне необходимо добавить новую сделку
Ввожу данные в форму, нажимаю кнопку добавить
Вылазит ошибка
В чем проблема?
Вот код кнопки:
Код:
private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) 
         {
             String^ mFIO;
             String^ mAdres;
             String^ mMVP;
             String^ mNomBlank;
             /*String^ ser1;
             String^ nom1;
             String^ KD1;*/
             int ser;
             int nom;
             int KD;
             
             try
         {
            mFIO=System::Convert::ToString(TextBox1->Text);
            mAdres=System::Convert::ToString(TextBox2->Text);
            mMVP =System::Convert::ToString(TextBox6->Text);
            mNomBlank =System::Convert::ToString(TextBox11->Text);
            ser=System::Convert::ToInt32(TextBox4->Text);
            nom=System::Convert::ToInt32(TextBox5->Text);
            KD=System::Convert::ToInt32(TextBox10->Text);
            /*KD=System::Convert::ToInt32(KD1);
            ser=System::Convert::ToInt32(ser1);
            nom=System::Convert::ToInt32(nom1);
        */
            combo1=comboBox1->SelectedIndex; // Получить индекс выбранной строки
            combo2=comboBox2->SelectedIndex;
            combo3=comboBox3->SelectedIndex;
            combo4=comboBox4->SelectedIndex;
            combo5=comboBox5->SelectedIndex;
                    
            String^ s1 =dataGridView1->Rows[combo1]->Cells[0]->Value->ToString(); // ID страны (строка)
            String^ s2 =dataGridView2->Rows[combo2]->Cells[0]->Value->ToString(); // ID региона (строка)
            String^ s3 =dataGridView3->Rows[combo3]->Cells[0]->Value->ToString(); // ID города (строка)
            String^ s4 =dataGridView4->Rows[combo4]->Cells[0]->Value->ToString();
            String^ s5 =dataGridView5->Rows[combo5]->Cells[0]->Value->ToString();
 
            //mIDN, mIDL, mIDMC, mIDGP, mIDNC
            mIDMC=System::Convert::ToInt32(s1); // код места (целое)
            mIDGP=System::Convert::ToInt32(s2); // пошлина (целое)
            mIDNC=System::Convert::ToInt32(s3); // код названия  (целое)
            mIDN=System::Convert::ToInt32(s4); // код нотариуса
            mIDL=System::Convert::ToInt32(s5); // код льготы
 
            mFIO = "'" + mFIO +"'";
            mAdres = "'"+ mAdres + "'";
            mMVP = "'" + mMVP +"'";
            mNomBlank = "'" + mNomBlank +"'";
            /*ser1 = "'"+ ser1 + "'";
            nom1 = "'"+ nom1 + "'";
            KD1 = "'"+ KD1 + "'";
        */
        DateTime^ dtimer=DateTime();
        
        dtimer = this->dateTimePicker1->Value;
        String^ s6 = dtimer->ToString("dd/MM/yyyy", DateTimeFormatInfo::CurrentInfo);
 
        DateTime^ dtimez=DateTime();
        
        dtimez = this->dateTimePicker2->Value;
        String^ s7 = dtimez->ToString("dd/MM/yyyy", DateTimeFormatInfo::CurrentInfo);
 
        DateTime^ dtimevp=DateTime();
        
        dtimevp = this->dateTimePicker3->Value;
        String^ s8 = dtimevp->ToString("dd/MM/yyyy", DateTimeFormatInfo::CurrentInfo);
 
        s6="'"+s6+"'";
        
        s7="'"+s7+"'";
 
        s8="'"+s8+"'";
                
            SqlCeCommand^ command1 = connection->CreateCommand();
            command1->CommandText = "INSERT INTO  Клиент (ФИО_клиента, Место_проживания, Дата_рождения, Серия_паспорта, Номер_паспорта, Дата_выдачи, Место_выдачи_и_кем_выдан) Values(?, ?, ?, ?, ?, ?, ?)";
            command1->Parameters->Add("ФИО_клиента", mFIO);
            command1->Parameters->Add("Место_проживания", mAdres);
            command1->Parameters->Add("Дата_рождения", s6);
            command1->Parameters->Add("Серия_паспорта", ser);
            command1->Parameters->Add("Номер_паспорта", nom);
            command1->Parameters->Add("Дата_выдачи", s8);
            command1->Parameters->Add("Место_выдачи_и_кем_выдан", mMVP);
            SqlCeDataReader^ read1 = command1->ExecuteReader();
            /*command1->ExecuteNonQuery();
            */
 
        /*String^ sql2= String::Format("SELECT MAX ID_клиента FROM Клиент");*/
        SqlCeCommand^ command2 = connection->CreateCommand();
        command2->CommandText = "SELECT MAX ID_клиента FROM Клиент";
        /*SqlCeCommand^ command2 = gcnew SqlCeCommand(sql2);*/
        SqlCeDataReader^ read2 = command2-> ExecuteReader();
 
        DataTable^ dt9;
        dt9 = gcnew DataTable();
 
        // Заполнение "шапки" таблицы
        dt9->Columns->Add("Номер");
 
        while (read2->Read() == true)
        // Заполнение клеток (ячеек) таблицы
        {
            dt9->Rows->Add(read2->GetValue(0));
        }
 
        read2->Read();
        dataGridView9->DataSource = dt9;
 
        String^ IDKl= dt9->Rows[0][0]->ToString();  //mIDN, mIDL, mIDMC, mIDGP, mIDNC
        IDKl1=System::Convert::ToInt32(IDKl);
 
        
 
            SqlCeCommand^ command3 = connection->CreateCommand();
            command3->CommandText = "INSERT INTO Нотариальное_действие(ID_клиента, ID_нотариуса, ID_названия, Дата_совершения_сделки, Код_места, Количество_документов, Номер_и_серия_бланка, Пошлина, Код_льготы) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?)";
            command3->Parameters->Add("ID_клиента", IDKl);
            command3->Parameters->Add("ID_нотариуса", mIDN);
            command3->Parameters->Add("ID_названия", mIDNC);
            command3->Parameters->Add("Дата_совершения_сделки", s7);
            command3->Parameters->Add("Код_места", mIDMC);
            command3->Parameters->Add("Количество_документов", KD);
            command3->Parameters->Add("Номер_и_серия_бланка", mNomBlank);
            command3->Parameters->Add("Пошлина", mIDGP);
            command3->Parameters->Add("Код_льготы", mIDL);
            SqlCeDataReader^ read3 = command3->ExecuteReader();
 
            MessageBox::Show("Новый клиент добавлен.", "ДОБАВЛЕНИЕ НОВОГО КЛИЕНТА",
                MessageBoxButtons::OK, MessageBoxIcon::Information);
         
            TextBox1->Text="";
            TextBox2->Text="";
            /*TextBox3->Text="";*/
            comboBox1->SelectedIndex=0;
            comboBox2->SelectedIndex=0;
            comboBox3->SelectedIndex=0;
            TextBox4->Text="";
            TextBox5->Text="";
            comboBox4->SelectedIndex=0;
            comboBox5->SelectedIndex=0;
            TextBox6->Text="";
        
        }
        catch (System::FormatException^ e)
        {
            MessageBox::Show("Ошибка ввода исходных данных",  "КОНТРОЛЬ ДАННЫХ", MessageBoxButtons::OK, MessageBoxIcon::Error);
        }   
         }
То есть кнопка то работает, только, что бы я не вводил, данные всегда введены неверно
Изображения
Тип файла: png таблица1.png (40.0 Кб, 124 просмотров)
Тип файла: png таблица2.png (38.2 Кб, 124 просмотров)
Тип файла: png таблица3.png (33.4 Кб, 123 просмотров)
Тип файла: png таблица4.png (41.3 Кб, 122 просмотров)
Тип файла: png таблица5.png (35.6 Кб, 127 просмотров)
Тип файла: png таблица6.png (34.8 Кб, 126 просмотров)
Тип файла: png добавитьсделку3.png (28.5 Кб, 67 просмотров)
Тип файла: png добавитьсделку2.png (11.6 Кб, 69 просмотров)
student772 вне форума Ответить с цитированием
Старый 02.01.2019, 15:37   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Так вы выведите не бесполезное сообщение, а данные из ексепшена. Ну или в отладчике посмотрите, что в нем.
p51x вне форума Ответить с цитированием
Старый 02.01.2019, 16:15   #3
student772
Пользователь
 
Регистрация: 02.01.2019
Сообщений: 14
По умолчанию

Вот
Изображения
Тип файла: jpg искл1.jpg (103.8 Кб, 130 просмотров)
Тип файла: jpg искл2.jpg (95.4 Кб, 111 просмотров)
Тип файла: jpg искл3.jpg (22.4 Кб, 123 просмотров)
student772 вне форума Ответить с цитированием
Старый 02.01.2019, 16:45   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

формат YYYYMMDD сиквел всегда правильно понимает
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 02.01.2019, 22:35   #5
student772
Пользователь
 
Регистрация: 02.01.2019
Сообщений: 14
По умолчанию

Проблема решилась.

Последний раз редактировалось student772; 02.01.2019 в 22:56.
student772 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка ввода Tymchuk C++ Builder 0 28.05.2012 00:33
Ошибка ввода и вывода данных s0liD's Паскаль, Turbo Pascal, PascalABC.NET 5 20.07.2011 06:48
Ошибка ввода Petros Общие вопросы по Java, Java SE, Kotlin 4 26.06.2011 16:25
Ошибка ввода/вывода на картридере Terran Компьютерное железо 4 07.05.2011 00:51
Как сделать вывод данных после всего ввода данных. Donatello Общие вопросы C/C++ 6 16.01.2011 16:32