Member 14969139 Ответов: 1

CDATE() не удается преобразовать значение из datetimepicker в тип даты


Привет,

Я работаю в операторе Insert.
Значение datetimepicker в форме windows необходимо преобразовать в тип даты, так как моя таблица SQL имеет тип данных Date.

Пробовал использовать CDATE() при загрузке формы и при нажатии кнопки, но получил сообщение об ошибке: "значение DateTimePicker не может быть преобразовано в дату".

Как я могу это исправить ?

Спасибо
Anshika

Что я уже пробовал:

Я пробовал CDATE() в VB, CAST() и COVERT TO в операторе SQL.

F-ES Sitecore

Если вы используете параметризованные запросы для выполнения sql и используете свойство ".Value" средства выбора даты, то ado должен выполнить всю работу за вас. Возможно, вам придется опубликовать соответствующие биты вашего кода при выполнении вставки для получения конкретной справки.

1 Ответов

Рейтинг:
1

OriginalGriff

Почему?
Просто используйте Элемента управления datetimepicker.Свойство value[^] - это уже значение DateTime, готовое быть переданным в качестве параметра SQL через ваш запрос INSERT:

using (SqlConnection con = new SqlConnection(strConnect))
    {
    con.Open();
    using (SqlCommand cmd = new SqlCommand("INSERT INTO myTable (myDateColumn, myStringColumn) VALUES (@DT, @ST)", con))
        {
        cmd.Parameters.AddWithValue("@DT", myDateTimePicker.Value);
        cmd.Parameters.AddWithValue("@ST", myTextBox.Text);
        cmd.ExecuteNonQuery();
        }
    }


Member 14969139

Привет, я использую VB. Запутался в приведенном выше коде. Ниже приведен мой код.

myCmd.Свойства commandtext = "вставить в менеджер задач.ДБО.Консультант (&ампер идентификатор,имя,RMCVALIDITY) значения ('2','"; текстовое поле textbox1.Текст &ампер; "','" & имя.DateTimePicker2.Значение &ампер; "')"

Сообщение об ошибке, которое я получаю, - это "System.Data.SqlClient.SqlException:" преобразование не удалось при преобразовании даты и/или времени из символьной строки".

OriginalGriff

"Я использую VB" - брррр. Это заразно? Ты должен был сказать ...

    Using con As SqlConnection = New SqlConnection(strConnect)
        con.Open()

        Using cmd As SqlCommand = New SqlCommand("INSERT INTO myTable (myDateColumn, myStringColumn) VALUES (@DT, @ST)", con)
            cmd.Parameters.AddWithValue("@DT", myDateTimePicker.Value)
            cmd.Parameters.AddWithValue("@ST", myTextBox.Text)
            cmd.ExecuteNonQuery()
        End Using
    End Using

Member 14969139

Полный код для нажатия кнопки приведен ниже. Это ошибки в адаптере.Команды insertcommand.Метод executenonquery()


myConn = New SqlConnection("источник данных = CSA10;начальный каталог=TaskManager;Интегрированная безопасность=SSPI")
myConn.Открыть()
myCmd = myConn.CreateCommand
myCmd.Свойства commandtext = "вставить в менеджер задач.ДБО.Консультант (&ампер идентификатор,имя,RMCVALIDITY) значения ('2','"; текстовое поле textbox1.Текст &ампер; "','" &амп; DateTimePicker2.Значение.Дата & "')"
-myCmd.Свойства commandtext = "вставить в менеджер задач.ДБО.Консультант (ID,имя,подразделение,DEPARTMENT2,обозначение,RMCNO,RMCVALIDITY,INDEMNITYVALIDITY,дата рождения,Примечания) значения ('2','" &амп; текстовое поле textbox1.Текст &ампер; "','медицинский','" &ампер; элемент combobox1.Текст &ампер; "','" &амп; ComboBox3.Текст &ампер; "','" &амп; поле textbox2.Текст &ампер; "','приведение(" &амп; DateTimePicker2.Значение &ампер; "как дата)','приведение(" &амп; DateTimePicker3.Значение &ампер; "как дата)','приведение(" &амп; DateTimePicker1.Значение &ампер; "как дата)','" &амп; textbox3 и.Текст &ампер; "')"
Dim адаптер как новый SqlDataAdapter(myCmd)
АДАПТЕР.InsertCommand = New SqlCommand(myCmd.CommandText, myConn)
АДАПТЕР.Команды insertcommand.Метод executenonquery()
myCmd.Располагать()
myConn.Рядом()