#0
by avyub
Не сохраняются данные из формы. Выдает ошибку. Листинг: private void btnAdd_Click(object sender, EventArgs e) { string connString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:DIPLOMDATABASEcalldata.accdb"; conn = new OleDbConnection(connString); conn.Open; Call cl; dontedit = true; //для часов cl.date = DateTime.Now.Year + "/" + DateTime.Now.Month + "/" + DateTime.Now.Day; cl.time = maskedTxtTime.Text; cl.callOperator = myName; cl.department = cmbDepartment.Text; cl.model = cmbModel.Text; cl.source = cmbSource.Text; cl.nameSurname = txtClientName.Text; cl.contact = txtClientTel.Text; //MessageBox.Show(cl.date + " " + cl.time + cl.callOperator + cl.department + cl.model + cl.source + cl.nameSurname + cl.contact); OleDbCommand c = new OleDbCommand("insert into Call (Date, Time, ID_Operator, ID_Department, ID_Model, ID_InfoSourse, ClientName, CotactTel) values (cl.date,cl.time,cl.callOperator,cl.department,cl.model,cl.source,cl.nameSurname',cl.contact)", conn); c.ExecuteNonQuery; }
#2
by Masquerade
А вообще - по 10-ти бальной шкале трешовости - это тянет на весь червонец. Почему в одном месте ты пишешь так: cl.date = DateTime.Now.Year + "/" + DateTime.Now.Month + "/" + DateTime.Now.Day; А в другом так? OleDbCommand c = new OleDbCommand("insert into Call (Date, Time, ID_Operator, ID_Department, ID_Model, ID_InfoSourse, ClientName, CotactTel) values (cl.date,cl.time,cl.callOperator,cl.department,cl.model,cl.source,cl.nameSurname',cl.contact)", conn);
#3
by Masquerade
Почему не так? cl.date = "DateTime.Now.Year / DateTime.Now.Month / DateTime.Now.Day";
#4
by Masquerade
И я не думаю, что ты ты, переписав запрос правильно - получишь результат. Поля в БД у тебя содержат в названии ID, а ты пытаешься запихнуть туда значения с формы. Сомнительно как-то что-то ты вводишь туда ID. Отдельно порадовало: Data Source=C:DIPLOMDATABASE Диплом значит...
#6
by avyub
MessageBox.Show(cl.date + " " + cl.time + cl.callOperator + cl.department + cl.model + cl.source + cl.nameSurname + cl.contact); все правильно выдает. Насчет ID я тоже думал. Там числовой формат, а cl.callOperator и прочие в текстовом (индексы преобразованные в текст)
#7
by Masquerade
Во первых - ты не ответил на . Во вторых - ты не видишь разницы между кодом в и OleDbCommand c = new OleDbCommand("insert into Call (Date, Time, ID_Operator, ID_Department, ID_Model, ID_InfoSourse, ClientName, CotactTel) values (cl.date,cl.time,cl.callOperator,cl.department,cl.model,cl.source,cl.nameSurname',cl.contact)", conn); ???
#8
by avyub
ну во первых я заочник, C# изучали пару дней. Сейчас самостоятельно осваиваю. под разнице ты ведь не ' имеешь ввиду. Сейчас преобразоввываю некоторые переменные из string в int. Потом снова попробую выполнить запрос
#9
by Masquerade
Короче, умного учить - только портить. 1. cl.nameSurname' - что это за одинарная кавычка? 2. Ты не можешь писать так - var a = 1; var b = 2; OleDbCommand c = new OleDbCommand("insert into my_table(number1,number2) values (a,b)",conn); Это же бред. Кто подставит значения переменных? Надо либо использовать параметры, либо как-то так: OleDbCommand c = new OleDbCommand("insert into my_table(number1,number2) values ("+a+","+b+")",conn);
#10
by Masquerade
-- Сейчас самостоятельно осваиваю. Так осваивай правильно, литературы полно. Ни в одной книге нет и не может быть такого кода.
#11
by avyub
сейчас код выглядит так: private void btnAdd_Click(object sender, EventArgs e) { string connString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:DIPLOMDATABASEcalldata.accdb"; conn = new OleDbConnection(connString); conn.Open; Call cl; dontedit = true; //для часов cl.date = DateTime.Now.Year + "/" + DateTime.Now.Month + "/" + DateTime.Now.Day; cl.time = maskedTxtTime.Text; cl.callOperator = myName; Opr = 2; //Int16 Opr=Convert.ToInt16(myName); cl.department = cmbDepartment.Text; Int16 dep=Convert.ToInt16(cl.department); cl.model = cmbModel.Text; Int16 mod = Convert.ToInt16(cl.model); cl.source = cmbSource.Text; Int16 src = Convert.ToInt16(cl.source); cl.nameSurname = txtClientName.Text; cl.contact = txtClientTel.Text; //MessageBox.Show(cl.date + " " + cl.time + cl.callOperator + cl.department + cl.model + cl.source + cl.nameSurname + cl.contact); OleDbCommand c = new OleDbCommand("insert into Call (Date, Time, ID_Operator, ID_Department, ID_Model, ID_InfoSourse, ClientName, ContactTel) values (cl.date,cl.time,opr,dep,mod,src,cl.nameSurname,cl.contact)", conn); c.ExecuteNonQuery; }
#15
by Супер король
В строке: ...... values (cl.date,cl.time, .......... вместо значений указаны имена переменных, да к тому же без кавычек. должно быть так: ..... values ('" . cl.date . "', '" . cl.time . "', ....... sql не понимает что такое cl.date, потому что оно стоит внутри строки ограниченной двойными кавычками и является частью строковой константы, а не переменной.
#16
by Serginio1
15+ Лучше использовать параметры Например command.Parameters.AddWithValue("@ID_Department", dep); На худой конец String.Format
#17
by avyub
т.е. каждую переменную поместить внутрь трех символов '". и ."' в одинарные кавычки пробовал помещать переменные еще до того как тему открыл а для чего здесь точка? а sql должен разве понимать, что такое cl.date и пр? Это все текстовые переменные. В файле акцессе в этом поле тоже должна быть текстовая переменная. Я считал, что если MessageBox.Show(cl.date) выдает правильный результат, то с ними проблем нет. Вот с полями типа числовой.. действительно пытаюсь тестовую переменную вставить в Числовое поле. и все таки, почему не получается преобразовать Int16 dep=Convert.ToInt16(cl.department); что здесь неправильно?
#18
by avyub
а разве @ ставят не перед переменными, которые являются зарезервированными словами? или у него есть еще какое то значение? Насчет command.Parameters.AddWithValue посмотрю что это такое и для чего
#19
by Serginio1
OleDbCommand c = new OleDbCommand("insert into Call (Date, Time, ID_Operator, ID_Department, ID_Model, ID_InfoSourse, ClientName, ContactTel) values (@Date, @Time, @ID_Operator, @ID_Department, @ID_Model, @ID_InfoSourse, @ClientName, @ContactTel)", conn); И для каждого парамера command.Parameters.AddWithValue Это самый правильный вариант. Второй вариант String.Format(("insert into Call (Date, Time, ID_Operator, ID_Department, ID_Model, ID_InfoSourse, ClientName, ContactTel) values ({0},{1},{2},{3},{4},{5},{6},{7})",cl.date,cl.time,opr,dep,mod,src,cl.nameSurname,cl.contact) Внутри скобок можешь устанавливать нужный формат
Тэги: Математика и алгоритмы
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- При отправке сообщения произошла ошибка : Общая ошибка MAPI
- C#: "Ошибка синтаксиса в инструкции INSERT INTO"
- Ошибка синтаксиса в инструкции UPDATE (C#)
- Странная ошибка "ошибка формата потока" с вылетом из сеанса
- Ошибка выполнения запроса "Ошибка при выполнении операции над данными: Ошибка SQL: Де
- v7: Ошибка СУБД.Внутренняя ошибка dbeng 8
- Ошибка выполнения запроса "Ошибка в ограничении доступа к данным..."
- Построение прямой по точкам C#
- При отправке сообщения произошла ошибка : Общая ошибка MAPI
- v8: Ошибка СУБД. Внутренняя ошибка компоненты DBENG8 при обмене данными
- Ошибка при попытке выгрузить данные из УТ в БП. интересная необычная ошибка
- Ошибка при вызове web-сервиса 1C 8.3 (Внутренняя ошибка. Ошибка инициализации б)
В этой группе 1С
- Внешний отчет и СКД
- Как в MS Word нужный текст сделать жирным с подчеркиванием?
- Помогите. Не дает поменять даты выгрузки документо из УТ10.3 в БП3.0
- Управляемые формы. Как программно вывести несколько кнопок на форму
- СКД. Дополнительная группировка "полугодие", "9 месяцев"
- Управляемые формы - не срабатывают точки останова
- Busybox shell script
- Не отображается картинка на веб клиенте
- УТ 11, перенос справочника цен из 7.7 в 8,3 ут
- Бешеные тормоза после переноса на MS SQL
- изменение состояния документа в 1с документооборот
- 1С 8.3. Запрос из регистра сведений, итоги.
- БП 3.0 + RLS = Зависание при печати счета. Help
- СКД, группировка с пустыми данными
- Кто силен в SQL? Команда MERGE интересует.
- Комплексная автоматизация 1.1 (1.1.58.2) Установка цен номенклатуры
- Использовать эту настройку периода при открытии. ЗУП.8.3.
- Заменить макет СКД в отчете?
- Нужен ли ведуший вид расчета
- У меня вопрос: как сохранить регламентированный отчет в БП 3.0 в Excel ?