Рейтинг:
37
OriginalGriff
Во - первых, не передавайте его как строку-передайте его как DateTime через параметризованный запрос, и вы не получите проблем.
Проблема в том, что SQL ожидает даты в формате гггг-ММ-ДД, и неанглийские символы путают его.
Передача дат в виде строк не является хорошей идеей - преобразуйте их в значения DateTime как можно скорее, чтобы избавиться от любой информации о местной культуре, которую пользователь мог ввести.
rajin kp
Д датавремя= Датавремя.Parse(MeetingTime, CultureInfo.Языка и региона существует);
cmdobj.Параметры.AddWithValue ("@MeetingTime", d );
Теперь новая ошибка "строка не была распознана как допустимая Дата-Время. Есть неизвестное слово, начинающееся с индекса 17."
OriginalGriff
Да-арабские символы начинаются с индекса 17.
Вы не можете использовать инвариантную культуру, вы должны использовать культуру для машины, на которой была введена информация о дате, это единственный способ быть разумно уверенным, что пользовательский формат ввода соответствует тому, с чем вы пытаетесь его перевести.
rajin kp
спасибо.Когда я использую Convert.Проблема ToDateTime(stringdate) решена.
OriginalGriff
Пожалуйста!
Member 11012743
я запускаю хранимую процедуру из SQL SERVER, чем также и передаю дату в качестве входных данных, все еще получая ту же ошибку "Ошибка преобразования типа данных nvarchar в datetime."
OriginalGriff
Такая же проблема...так же решение! :смеяться:
Member 11012743
какое же решение?
OriginalGriff
Тот, который вы комментируете, который я разместил здесь два года назад!
Member 11012743
как я нахожу проблему, чем только я спросил.
OriginalGriff
Полученное сообщение об ошибке означает, что вы передаете строковое значение хранимой процедуре и преобразуете его в значение даты или времени, но SQL не может понять переданное вами строковое значение.
Единственное решение для этого - перейти туда, где вы вызываете SP в своем приложении, и исправить его там, где у вас есть информация о локали пользователя и т. д., путем преобразования, сообщения об ошибках и передачи только значения DateTime в ваш SP.
Точно такая же проблема, как и оригинальная операция, и точно такое же решение...
Member 11012743
я определяю параметра хранимой процедуры в качестве даты и времени и передает значение datetimepicker, чтобы он
OriginalGriff
Это действительно отдельный вопрос - и, вероятно, лучше как один, так как код в этих маленьких текстовых полях работает не слишком хорошо. :смеяться:
Поэтому начните новый вопрос и покажите код приложения, код SP и точное сообщение об ошибке.
Разместите ссылку здесь, и я посмотрю на нее.
Рейтинг:
24
pranathis012
Привет,
то, что вы пытаетесь сделать, - это напрямую передать строковое значение с параметром datetime.
Это не очень хороший способ, независимо от того, как вы используете типы данных в sql, вы должны и должны передавать одни и те же значения, иначе вы столкнетесь с некоторой проблемой преобразования.
Пожалуйста, преобразуйте ваше строковое значение в datetime с помощью convert.
string str="01-10-2013 09:15 ص";
DateTime dt1=Convert.ToDateTime(str);