Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: SQL + VB.Net+date Странные вещи Добавлено: 06.09.03 00:53  

Автор вопроса:  ⊗WaX⊗ | Web-сайт: sapfir.cift.ru

Делаю так(отрывки)

Dim dt As String

dt =Date.Now.ToString("dd") & "/" + Date.Now.ToString("MM") & "/" + Date.Now.ToString("yyyy"))

kol = InputBox("Введите количество", "Продажа")

If kol = "" Then Exit Sub

strsql = "INSERT INTO kolvo (Код_оттенка,Кол_во,Дата,Имя) VALUES(" & "'" & kod_ost & "'" & "," & kol & "," & "#" & dt & "#" & "," & "'" & ComboBox4.Text & "'" & ")" '& "#" + dt & "#"

Так вот как видно dt это строка типа dd/mm/yyyy в запросе на добавление она выделена ## то есть как дата так вот в Акссесс она добавляется в формате mm/dd/yyyy при mm<12

или в формаие dd/mm/yyyy при mm>=12 региональные настройки правильные.

Ничего не понимаю.

Ответить

  Ответы Всего ответов: 11  

Номер ответа: 1
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #1
Добавлено: 06.09.03 10:06
Не очень понял вопрос... Но дату нужно в SQL Server заключать не в #дата#, а в 'дата'. ИМХО, формат даты или dd/mm/yyyy или mm/dd/yyyy.

Ответить

Номер ответа: 2
Автор ответа:
 ol2003



Вопросов: 3
Ответов: 122
 Профиль | | #2 Добавлено: 06.09.03 20:10

принципе не понял зачем ты передаешь стринг. Попробуй

dim dt as Date

dt=Date.now

И вот это безобразие передавай в Access.

Ответить

Номер ответа: 3
Автор ответа:
 boevik



Хранитель чата

ICQ: 137392264 

Вопросов: 8
Ответов: 557
 Web-сайт: www.hypertech.ru
 Профиль | | #3
Добавлено: 07.09.03 00:56

Вопрос по передаче даты в Access уже обсуждался не раз.

В Access дату надо передавать в формате mm/dd/yyyy.

Access на столько умный, что при передаче #13/01/2003# понимает, что месяца 13 не существует и поэтому меняет месяц и день местами и принимает дату в формате dd/mm/yyyy.

Так, что всегда передавай в формате mm/dd/yyyy.

Ответить

Номер ответа: 4
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #4
Добавлено: 07.09.03 08:31
To ol2003: нельзя просто поставить тип DateTime потому что собственно
это используется в SQL-запросе на обновление, а там надо писать дату в
строковом значении. Можно конечно пойти обходным путём - создать
DataAdapter для обновления базы. Я так делал в одном проекте, потому
что не получилось по-другому добавить длинный текст (до 7000
символов), но это уже другая история...

Насчёт моего предыдущего ответа: я немного не понял вопрос и
подумал, что юзается база SQL Server, а не Access.

Ответить

Номер ответа: 5
Автор ответа:
 ⊗WaX⊗



Вопросов: 26
Ответов: 325
 Web-сайт: sapfir.cift.ru
 Профиль | | #5
Добавлено: 07.09.03 21:20

2 ol2003 Если это действительно так Очень жаль

2 All А можно ли в DataGrid колонку дата переделывать из mm/dd/yyyy в dd/mm/yyyy

если можно то как

Ответить

Номер ответа: 6
Автор ответа:
 ⊗WaX⊗



Вопросов: 26
Ответов: 325
 Web-сайт: sapfir.cift.ru
 Профиль | | #6
Добавлено: 07.09.03 21:22

2 boevik Если это действительно так Очень жаль

2 All А можно ли в DataGrid колонку дата переделывать из mm/dd/yyyy в dd/mm/yyyy

если можно то как

Ответить

Номер ответа: 7
Автор ответа:
 Justas



ICQ: 259418212 

Вопросов: 24
Ответов: 325
 Web-сайт: justas.newmail.ru
 Профиль | | #7
Добавлено: 08.09.03 01:58

просто что бы в дата_гриде отобразить?

1_ое что приходит в голову - пробегись по записям циклом (по рекордсету или дата_гриду - как больше нравится :)) ) и поменяй отображение даты...

Ответить

Номер ответа: 8
Автор ответа:
 boevik



Хранитель чата

ICQ: 137392264 

Вопросов: 8
Ответов: 557
 Web-сайт: www.hypertech.ru
 Профиль | | #8
Добавлено: 08.09.03 08:17

Попробуй выбрать данные в нужном формате.

Select Format(Дата, 'dd/mm/yyyy'),  Имя From kolvo

Ответить

Номер ответа: 9
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #9
Добавлено: 08.09.03 13:35
"Select Format(Дата, 'dd/mm/yyyy'), Имя From kolvo"

Но ведь если в DataTable, куда производится выборка, поле Дата имеет
тип не String, а Date, как ему положено, то это не принесёт эффекта,
так как .NET дату опять преобразует в удобный для себя формат.

Ответить

Номер ответа: 10
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #10
Добавлено: 08.09.03 13:35
А как это сделать? Как можн опоменять вид отображения даты в
переменной типа DateTime? Я такого не представляю!

Чую, что копать надо под класс DataGridColumnStyle и производные от
него. Именно они занимаются отображением данных.

Ответить

Номер ответа: 11
Автор ответа:
 ⊗WaX⊗



Вопросов: 26
Ответов: 325
 Web-сайт: sapfir.cift.ru
 Профиль | | #11
Добавлено: 08.09.03 18:16

Самая фишка в том, что если передавать в Акссесс данные запросом INSERT

в формате mm/dd/yyyy то в базу они записываются согласно региональным настройкам

т. е. в dd/mm/yyyy

выборку делаю тоже в формате mm/dd/yyyy но значения возвращаются в формаие dd/mm/yyyy

Так что с DataGrid проблемы нет

Зачем они так %-)

2 All

В "Понимании SQL " описан вариант boevika сам я его не пробовал

но мне кажется что это наиболее правильный вариант

Т.е. сначала делаем выборку в нужном формате а потом коннектим это к datagrid

2 ALL Вопрос

В dataview есть классная вещь rowfilter со строками работает здорово

но что делать если нужно фильтровать по дате ведь Like это для строк

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам