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

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

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.10.2012, 17:03   #1
dieego6@gmail.com
Новичок
Джуниор
 
Регистрация: 03.10.2012
Сообщений: 6
По умолчанию Неправильный синтаксис

Доброго времени суток!



Составил запрос
"INSERT INTO data" +
"([datetime]" +
",[tag1]" +
",[tag2]" +
",[tag3]" +
",[tag4]" +
",[tag5]) VALUES" +

"(" + dataGridView1.Rows[countRows + i].Cells[0].Value.ToString() +
"," + dataGridView1.Rows[countRows + i].Cells[1].Value.ToString() +
"," + dataGridView1.Rows[countRows + i].Cells[2].Value.ToString() +
"," + dataGridView1.Rows[countRows + i].Cells[3].Value.ToString() +
"," + dataGridView1.Rows[countRows + i].Cells[4].Value.ToString() +
"," + dataGridView1.Rows[countRows + i].Cells[5].Value.ToString() + ")"
при попытке выполнить получаю ошибку:
Неправильный синтаксис около конструкции ".2012".

пример значений '03.10.2012 0:26',1,2,3,4,5,6

В чём проблема проблема?
dieego6@gmail.com вне форума Ответить с цитированием
Старый 03.10.2012, 17:09   #2
wm_leviathan
Форумчанин
 
Аватар для wm_leviathan
 
Регистрация: 17.02.2010
Сообщений: 399
По умолчанию

какой sql сервер ? если MS 2000 то даты в нем через /. еще мб вы пытаетесь строку запихнуть в ячейку с датой. надо бы знать какие поля вбазе и какие данные туда заносятся.
wm_leviathan вне форума Ответить с цитированием
Старый 03.10.2012, 17:20   #3
dieego6@gmail.com
Новичок
Джуниор
 
Регистрация: 03.10.2012
Сообщений: 6
По умолчанию

ms sql server 2012

типы данных:
datetime
int
int
int
int
int


вот так сделал - добавил Convert.ToDateTime - всё равно не помогает

adap = new SqlDataAdapter("INSERT INTO data" +
"([datetime]" +
",[tag1]" +
",[tag2]" +
",[tag3]" +
",[tag4]" +
",[tag5]) VALUES" +

"(" + Convert.ToDateTime(dataGridView1.Ro ws[countRows + i].Cells[0].Value) +
"," + dataGridView1.Rows[countRows+i].Cells[1].Value.ToString() +
"," + dataGridView1.Rows[countRows+i].Cells[2].Value.ToString() +
"," + dataGridView1.Rows[countRows+i].Cells[3].Value.ToString() +
"," + dataGridView1.Rows[countRows+i].Cells[4].Value.ToString() +
"," + dataGridView1.Rows[countRows+i].Cells[5].Value.ToString() + ")", con);
dieego6@gmail.com вне форума Ответить с цитированием
Старый 03.10.2012, 17:40   #4
dieego6@gmail.com
Новичок
Джуниор
 
Регистрация: 03.10.2012
Сообщений: 6
По умолчанию

поэкпериментировал - пришёл вот к такому выводу

1. на сервере когда создавал таблицу, у столбцов ставил галочки - разрешать null значения - когда составляю запрос '3.10.2012 0:26',,,,,, - выдаёт "неправильный синтаксис"

почему? (может пустое значение это не null?)
2. конечно же нужно datetime заключать в одинарные кавычки
dieego6@gmail.com вне форума Ответить с цитированием
Старый 03.10.2012, 17:53   #5
wm_leviathan
Форумчанин
 
Аватар для wm_leviathan
 
Регистрация: 17.02.2010
Сообщений: 399
По умолчанию

помоему у типа datetime синтаксис чуть больше (там секунды и что то еще) 3.10.2012 0:26-это больше похож на тип smalldatetime
--@datetime @smalldatetime
------------------------- -----------------------
--2001-12-01 12:32:00.000 2001-12-01 12:32:00

еще как факт сервер может просить ввод данных типа дата не в таком виде (привычном для нас) dd.mm.yyyy hh:mm а вида yyyy-mm-dd hh:mm (у меня на sql 2000 такое было я функцию для конвертирования дат сделал себе)

Последний раз редактировалось wm_leviathan; 03.10.2012 в 17:56.
wm_leviathan вне форума Ответить с цитированием
Старый 03.10.2012, 18:59   #6
Reskov
Форумчанин
 
Аватар для Reskov
 
Регистрация: 17.12.2008
Сообщений: 250
По умолчанию

хм... все нормально с датой вроде
попробуйте через параметры...
или
взять в кавычки
Цитата:
"(" + Convert.ToDateTime(dataGridView1.Ro ws[countRows + i].Cells[0].Value) + ","
"('" + Convert.ToDateTime(dataGridView1.Ro ws[countRows + i].Cells[0].Value) +
"',"
либо попробуйте сконвертить к 121
insert into test values(convert(datetime,'03.10.2012 0:26',121))
Reskov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Неправильный рандом Тандер Microsoft Office Word 5 14.02.2012 15:17
проверка на неправильный ввод a.n.o.n.i.m Общие вопросы C/C++ 5 23.10.2011 09:57
Неправильный синтаксис около конструкции "?" Monstrim Visual C++ 1 09.09.2011 15:11
при вставке записи в БД (MDB) выдает ошибку "неправильный синтаксис запроса" lkjuio C# (си шарп) 8 01.05.2011 23:30
неправильный запрос? dedyshka PHP 8 17.11.2009 20:27