VB.net Формат даты Gridview дд / мм / гггг - PullRequest
2 голосов
/ 02 мая 2011

Hello Я пытаюсь обновить базу данных MS Access. У меня есть сетка с датой, которую я использую:

Dim tBox As TextBox = CType(gridStaff.Rows(e.RowIndex).FindControl("sDate"), TextBox)

Затем я хочу взять значение из этого текстового поля и присвоить его переменной даты.

Dim test As Date = CDate(tBox.Text)

Проблема, с которой я столкнулся, заключается в том, что теперь, когда я помещаю тестовую переменную в свой запрос обновления sql, она сохраняет дату в этом формате. мм / дд / гггг вместо формата дд / мм / гггг, который я хочу.

Я пробовал разные способы форматирования, которые я читал в Интернете, но пока безуспешно. Любой совет был бы великолепен!

Спасибо

Ответы [ 2 ]

0 голосов
/ 02 мая 2011

попробуйте использовать

Dim test As Date =  DateTime.ParseExact(tBox.Text, "d/M/yyyy", CultureInfo.InvariantCulture)

или если ваша Система настроена правильно, и CultureInfo.CurrentCulture имеет правильный формат даты,

Dim test As Date =  DateTime.Parse(tBox.Text, CultureInfo.CurrentCulture )

вместо CDate()

0 голосов
/ 02 мая 2011

Является ли ваша проблема преобразованием из tBox.Text в Date или оно находится на уровне запроса обновления sql? - Вы, вероятно, должны дать оператору sql параметр со строгим типом. Преобразование из tBox.Text в тест, вероятно, должно быть выполнено с учетом культуры:

'Строка для конвертации и целевой даты: Dim dateString As String = "15.02.2011" Dim d As Date

'Укажите английскую / американскую культуру при преобразовании строки: Dim cul As Globalization.CultureInfo = Globalization.CultureInfo.GetCultureInfo ("en-US") d = Date.Parse (dateString, cul)

Вы также можете положиться на культуру по умолчанию и просто позволить Date.Parse выполнять работу без указания культуры.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...