|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
28.03.2016, 08:16 | #1 |
Регистрация: 09.06.2014
Сообщений: 9
|
VS C++/CLI добавить данные в бд запросом
Доброго времени суток.
Проблема такая, создаю проект С++/CLI в vs 2008 т.к. там работает Ctrl+пробел для подсказок. Мне необходимо данные с textbox-ов занести в базу данных Аксесс. Форму и элементы на ней создаю с помощью графических средств. Подключаю oleDbDataAdapter1 и там же настраиваю oleDbConnection1 путь к своей бд. Это создаёт мастер: Код HTML:
this->components = (gcnew System::ComponentModel::Container()); System::ComponentModel::ComponentResourceManager^ resources = (gcnew System::ComponentModel::ComponentResourceManager(Form1::typeid)); this->oleDbConnection1 = (gcnew System::Data::OleDb::OleDbConnection()); // oleDbConnection1 // this->oleDbConnection1->ConnectionString = L"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\\Rabota\\Mydb.accdb"; // // oleDbInsertCommand1 // this->oleDbInsertCommand1->CommandText = L"INSERT INTO `tbl_j_product` (`Название`, `Цена`, `характеристики`) VALUES (\?, \?, " L"\?)"; Обрабатываю событие нажатие кнопки: C++ Код HTML:
System::Data::OleDb::OleDbCommand^ oleDbCommand; oleDbCommand->Connection=this->oleDbConnection1; oleDbCommand->CommandText="INSERT INTO `tbl_rabota` (`Детали`, `Кол-во_сделанного`, `Дата`, `Брак_кол-во`) VALUES ("+ this->textBox4->Text +" , "+ this->textBox1->Text +" ,"+ this->dateTimePicker1->Value.ToShortDateString() +" ,"+ this->textBox3->Text +")"; oleDbCommand->ExecuteNonQuery(); // this->oleDbConnection1->Open(); // this->oleDbInsertCommand3->CommandText = "INSERT INTO `tbl_rabota` (`Детали`, `Кол-во_сделанного`, `Дата`, `Брак_кол-во`) VALUES (" + "textBox4->Text +" , "+ textBox1->Text +" ,"+ dateTimePicker1->Value.ToShortDateString +" ,"+ textBox3->Text +")"; // this->oleDbInsertCommand3->ExecuteNonQuery(); // this->oleDbConnection1->Close(); Необработанное исключение типа "System.NullReferenceException" произошло в System.Data.dll Дополнительные сведения: В экземпляре объекта не задана ссылка на объект. Помогите добавить таки данные в бд с textbox-ов. Добавление и удаление через DataGridView работает хорошо, только при DataAdapter1->Update(tbl_product); приходится сначала сделать шаг на предыдущую запись и тогда сохраняет. Очень прошу помочь, недавно перешёл с консольных программ на графический интерфейс. |
28.03.2016, 09:55 | #2 |
Форумчанин
Регистрация: 26.01.2009
Сообщений: 360
|
Вы не инициализируете переменную oleDbCommand.
Почитайте: https://msdn.microsoft.com/ru-ru/lib...v=vs.110).aspx |
28.03.2016, 10:32 | #3 |
Регистрация: 09.06.2014
Сообщений: 9
|
koljsch
Спасибо я использовал вариант ниже который был закомментирован. Возник другой вопрос. textbox1 у меня связан с через bildingSource с таблицей в которую я добавляю данные с полем которое является подстановкой из другой таблицы. Т.е. в поле при добавлении открывается список деталей и пользователь выбирает из списка нужную. Мне же нужно добавлять в таблицу не текст, а id номер из связанной таблицы. Я организовал так создал ещё 1 textbox4 и связал его с id нужной таблицы. При выборке в textbox1 меняется и textbox4 на нужный id, его я и добавляю запросом в таблицу. И вот вопрос) когда я делаю textbox4 невидимым visible=false, возникает ошибка "Необработанное исключение типа "System.FormatException" произошло в mscorlib.dll Дополнительные сведения: Входная строка имела неверный формат." Если делаю видимым, то всё работает хорошо. Как можно избавится от этой ошибки? Или можно иным способом получать id? |
28.03.2016, 11:32 | #4 |
Форумчанин
Регистрация: 26.01.2009
Сообщений: 360
|
elaxblackfox, сложно понять о чем идет речь.
Либо выкладывайте весь проект, либо отладчиком проходите и смотрите что у Вас в textbox4, когда он невидим. |
28.03.2016, 11:40 | #5 |
Регистрация: 09.06.2014
Сообщений: 9
|
http://my-files.ru/bp4dk9 вот ссылка на весь проект с бд и прочим. Я пока разбираюсь так что это можно сказать тест.
Если сделать textbox4 видимым то ошибки никакой нету, всё хорошо добавляется. Меня интересует как исправить эту ошибку либо иной способ добавить в связанную таблицу в поле с подстановкой |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как одним запросом добавить копию записи в таблицу? | ЛюбительПИ | Microsoft Office Access | 5 | 28.10.2015 10:28 |
Как редактировать данные в таблице созданной запросом? | majjestik | C++ Builder | 0 | 05.06.2013 21:55 |
Как исключить данные запросом? | Вадичок | Microsoft Office Access | 9 | 16.09.2012 08:49 |
Выбрать данные из 2 таблиц одним запросом | Linel | SQL, базы данных | 4 | 16.02.2011 15:29 |
Добавить строку в longtext одним Update запросом | Alar | SQL, базы данных | 1 | 02.02.2011 18:11 |