Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/15: Рейтинг темы: голосов - 15, средняя оценка - 4.67
18 / 1 / 0
Регистрация: 28.02.2017
Сообщений: 110
1

Использование даты из MonthCalendar в SQL запросе

26.04.2017, 12:24. Показов 3121. Ответов 14
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток)

Пытаюсь в базу засунуть дату (формат ячейки date)

C#
1
2
3
4
5
 //DateTime date = _date.SelectionStart;
                    string nameColumn = _cb.Text;
                    string sqlExpression =String.Format("INSERT INTO Project (SerialNumb,{1}) VALUES ({0},{2})", i,nameColumn,_date.SelectionStart);
                    SqlCommand command = new SqlCommand(sqlExpression, connection);
                    object count = command.ExecuteScalar();
Вылетает ошибка при добавлении
Миниатюры
Использование даты из MonthCalendar в SQL запросе  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.04.2017, 12:24
Ответы с готовыми решениями:

Проверка даты в запросе sql
Сначала спрошу если пользователь выполнил действие, и поставить setTimeout (5 минут) на выполнение...

Преобразование даты в SQL запросе
В БД есть две таблицы. В первой таблице поля "дата" (дд.мм.гггг) и "время" (мм:чч:сс) разделены, а...

Формат даты в БД в запросе SQL
Добрый день! Я не имею опыта программирования и тем более не приходилось работать с БД. Поэтому...

Не получается ввести диапазон даты в SQL запросе
Мне необходимо вывести список прошедших обучения клиентов за заданный период,который необходимо...

14
18 / 1 / 0
Регистрация: 28.02.2017
Сообщений: 110
26.04.2017, 12:34  [ТС] 2
Ругается на дату, может что то не верно с форматом ячеек ?
Миниатюры
Использование даты из MonthCalendar в SQL запросе  
0
8942 / 4854 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
26.04.2017, 12:46 3
Дата должна быть в формате YYYYMMDD. Это будет читаться всегда.
0
18 / 1 / 0
Регистрация: 28.02.2017
Сообщений: 110
26.04.2017, 13:00  [ТС] 4
Но у меня вся база в формате DDMMYYYY как быть ?
Можно где то указать какой формат даты использовать ?
0
18 / 1 / 0
Регистрация: 28.02.2017
Сообщений: 110
26.04.2017, 13:03  [ТС] 5
Формат такой как нужен вроде бы
Миниатюры
Использование даты из MonthCalendar в SQL запросе  
0
8942 / 4854 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
26.04.2017, 13:06 6
paulodelon, не важно в каком виде она у тебя отображается. Дата хранится вообще в виде числа. Формат YYYYMMDD всегда читается.
формат даты ты указываешь при формировании строки запроса:
C#
1
string sqlExpression =String.Format("INSERT INTO Project (SerialNumb,{1}) VALUES ({0},{2:YYYYMMDD})", i,nameColumn,_date.SelectionStart);
0
471 / 234 / 73
Регистрация: 25.05.2012
Сообщений: 1,054
Записей в блоге: 1
26.04.2017, 13:09 7
paulodelon, как вариант, перед запросом выполнить команду
https://msdn.microsoft.com/ru-... .120).aspx

как-то так
SQL
1
SET DATEFORMAT dmy
0
18 / 1 / 0
Регистрация: 28.02.2017
Сообщений: 110
26.04.2017, 13:17  [ТС] 8
Код
string sqlExpression = String.Format("INSERT INTO Project (SerialNumb,{1}) VALUES ({0},{2:YYYYMMDD})", i, nameColumn, _date.SelectionStart);
не работает
Миниатюры
Использование даты из MonthCalendar в SQL запросе  
0
471 / 234 / 73
Регистрация: 25.05.2012
Сообщений: 1,054
Записей в блоге: 1
26.04.2017, 13:26 9
paulodelon, подумайте на тем, чтобы передавать дату/время как параметр, а не как строку. Тогда проблема конвертации уйдет сама собой.
1
18 / 1 / 0
Регистрация: 28.02.2017
Сообщений: 110
26.04.2017, 21:10  [ТС] 10
Код
 string sqlExpression = "INSERT INTO Project (SerialNumb,First) VALUES (@serial,@date)";
                   

                    SqlCommand command = new SqlCommand(sqlExpression, connection);
                    SqlParameter serialParam = new SqlParameter("@serial", serial);
                    // добавляем параметр к команде
                    command.Parameters.Add(serialParam);

                    SqlParameter columnParam = new SqlParameter("@nameColumn", nameColumn);
                    // добавляем параметр к команде
                    command.Parameters.Add(columnParam);

                    SqlParameter datelParam = new SqlParameter("@date", date);
                    // добавляем параметр к команде
                    command.Parameters.Add(datelParam);

                    object count = command.ExecuteScalar();
Так работает, спасибо огромное )
Еще один вопросик
изменяю запрос что бы при выборе из комбобокса в котором содержатся столбцы выбрать нужный столбец это параметр @nameColumn
string sqlExpression = "INSERT INTO Project (SerialNumb,@nameColumn) VALUES (@serial,@date)";

выбивает ошибку! Или Столбец для записи не может быть параметром ?
0
471 / 234 / 73
Регистрация: 25.05.2012
Сообщений: 1,054
Записей в блоге: 1
26.04.2017, 23:18 11
paulodelon,
http://stackoverflow.com/quest... sql-server
0
18 / 1 / 0
Регистрация: 28.02.2017
Сообщений: 110
27.04.2017, 16:58  [ТС] 12
Я всеравно не понял как
0
471 / 234 / 73
Регистрация: 25.05.2012
Сообщений: 1,054
Записей в блоге: 1
27.04.2017, 17:06 13
paulodelon,
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
string sqlExpression = "EXEC('INSERT INTO Project (SerialNumb,' + QUOTENAME(@nameColum) + ') VALUES (@serial,@date)')";
SqlCommand command = new SqlCommand(sqlExpression, connection);
 
SqlParameter serialParam = new SqlParameter("@serial", serial);
command.Parameters.Add(serialParam);
 
SqlParameter columnParam = new SqlParameter("@nameColumn", nameColumn);
command.Parameters.Add(columnParam);
 
SqlParameter datelParam = new SqlParameter("@date", date);
command.Parameters.Add(datelParam);
 
object count = command.ExecuteScalar();
0
18 / 1 / 0
Регистрация: 28.02.2017
Сообщений: 110
27.04.2017, 17:14  [ТС] 14
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
                    // Серийный номер
                    long serial = Convert.ToInt64(_tx.Text);
 
                    // дата и колонка для  заполнения 
                    DateTime date = _date.SelectionStart;
                    string nameColumn = _cb.Text;
                    string sqlExpression = "EXEC('INSERT INTO Project (SerialNumb,' + QUOTENAME(@nameColum) + ') VALUES (@serial,@date)')";
 
 
                    SqlCommand command = new SqlCommand(sqlExpression, connection);
                    SqlParameter serialParam = new SqlParameter("@serial", serial);
                    // добавляем параметр к команде
                    command.Parameters.Add(serialParam);
 
                    SqlParameter columnParam = new SqlParameter("@nameColumn", nameColumn);
                    // добавляем параметр к команде
                    command.Parameters.Add(columnParam);
 
                    SqlParameter dateParam = new SqlParameter("@date", date);
                    // добавляем параметр к команде
                    command.Parameters.Add(dateParam);
 
                    object count = command.ExecuteScalar();
                    
                }
Миниатюры
Использование даты из MonthCalendar в SQL запросе  
0
18 / 1 / 0
Регистрация: 28.02.2017
Сообщений: 110
27.04.2017, 21:49  [ТС] 15
Все оказалось просто )
C#
1
string sqlExpression = "INSERT INTO Project (SerialNumb,"+ nameColumn.Trim() + ") VALUES (@serial,@date)";
0
27.04.2017, 21:49
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.04.2017, 21:49
Помогаю со студенческими работами здесь

Изменение формата даты при SQL-запросе
Доброго времени суток всем Возникла следующая проблема. В таблице есть поле "дата" формата...

Формат даты в SQL-запросе (компонент ADOQuery)
Помогите разобраться! Есть таблица в Access, одно из полей которой имеет тип "дата". Как сделать...

Использование max() в sql запросе
нахожусь в процессе ковыряния SQL-запросов. У меня есть таблица с полем "Код группы", "ФИО", "Год...

Использование переменной в SQL запросе
Всем привет. Вопрос такой: Как поместить данные введённые из, к примеру textbox в sql запрос для...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru