Как сохранить дату из формы Windows в SQL Server, когда культура "ar-KW" - PullRequest
1 голос
/ 06 сентября 2011

У меня есть многоязычное приложение, в котором я использую языки "en-US" и "ar-KW". У меня также есть WinForm, где я использую элемент управления DateTimePicker. Когда пользователь входит в систему, если его язык по умолчанию «en-US», он сохраняет запись, но когда у него есть язык по умолчанию «ar-KW», этот формат даты не сохраняется в базе данных и выдает ошибку. Почему?

Тип данных поля Employee DateOfBirth: smallDateTime в SQL Server. Я использую следующий код в VB, чтобы сохранить запись. В бэкэнде есть обычная INSERT хранимая процедура.

If Me.dtDateOfBirth.Checked = False Then
            cmd.Parameters.Add("@DateOfBirth", SqlDbType.SmallDateTime).Value = SqlDateTime.Null
Else
        If mUserDefaultLanguage = "ar-KW" Then
                Me.dtDateOfBirth.Format = DateTimePickerFormat.Custom
                Me.dtDateOfBirth.CustomFormat = "dd/MM/yyyy"
                Dim oDate As String = Me.dtDateOfBirth.Text
                Dim dt As Date
                dt = (CType(oDate, Date))
                cmd.Parameters.Add("@DateOfBirth", SqlDbType.DateTime).Value = SqlDateTime.Parse(dt)
        Else
                cmd.Parameters.Add("@DateOfBirth", SqlDbType.DateTime).Value = SqlDateTime.Parse(Me.dtDateOfBirth.Text)
        End If

End If

1 Ответ

0 голосов
/ 15 октября 2011

Это может быть проблемой с преобразованием даты и времени:

    Dim oDate As String = Me.dtDateOfBirth.Text
    Dim dt As Date
    dt = (CType(oDate, Date))

Почему бы вам не использовать свойство .Value элемента управления DateTimePicker вместо преобразования его свойства .Text в DateTime тип?

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