Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/75: Рейтинг темы: голосов - 75, средняя оценка - 4.85
3 / 3 / 3
Регистрация: 29.02.2016
Сообщений: 175

Данная строка не распознана как действительное значение DateTime. Обнаружено неизвестное слово,

19.07.2018, 19:23. Показов 16281. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как исправить эту ошибку ?
An unhandled exception of type 'System.FormatException' occurred in mscorlib.dll
Additional information: Данная строка не распознана как действительное значение DateTime. Обнаружено неизвестное слово, начинающееся с индекса 0.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Linq;
using System.Xml;
using System.Data.SqlClient;
using System.Data;
 
namespace ConsoleApplication6
{
    class Program
    {
        static void Main(string[] args)
        {
            SqlConnection SQL = new SqlConnection("Data Source=DIMA\\SQLEXPRESS;Initial Catalog=DIMA;Integrated Security=True");
            SQL.Open();
 
            SqlCommand COM = SQL.CreateCommand();
 
            XDocument xml = XDocument.Load("1232132.xml");
            COM.Parameters.Add(new SqlParameter("@pokritye", SqlDbType.VarChar));
            COM.Parameters.Add(new SqlParameter("@date_registr", SqlDbType.VarChar));
 
            foreach (XElement nameORZ in xml.Elements("РеестрИпотечныхЦенныхБумаг").Elements("ИпотечныеЦенныеБумаги").Elements("ИпотечнаяЦеннаяБумага"))
            {
                XElement companyElement = nameORZ.Element("ДатаРегистрацииИЗ");
                XElement date_registr = nameORZ.Element("РегистрационныйНомерИЗ");
                if (companyElement != null && date_registr != null)
                {
 
                         COM.Parameters["@pokritye"].Value = companyElement.Value;
                         COM.Parameters["@date_registr"].Value = Convert.ToDateTime(date_registr.Value);
                         COM.CommandText = "INSERT INTO [dbo].[эксперемент]([Покрытия],[Регистрационный Номер ИЗ]) VALUES(@pokritye,@date_registr)";
                         COM.ExecuteNonQuery();
                }
                if(companyElement ==null)
                {
                    Console.WriteLine("В документе ошибка!");
                }
               
            }
 
            SQL.Close();
 
            Console.ReadKey();
C#
1
2
  COM.Parameters["@date_registr"].Value = Convert.ToDateTime(date_registr.Value); //  Additional information: Данная строка не распознана как действительное значение DateTime.
                                                                                                           //Обнаружено неизвестное слово, начинающееся с индекса 0.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.07.2018, 19:23
Ответы с готовыми решениями:

Строка не распознана как действительное значение DateTime
Объясните почему? Строка не распознана как действительное значение DateTime DateTime CurrentTime =...

Строка не распознана как действительное значение DateTime
Добрый день! Подскажите, пожалуйста, в чем ошибка? string DateT_r = insert_adaptation_read.ToString();// строка получается вот...

Строка не распознана как действительное значение DateTime
В строке высвечивается ошибка - "Строка не распознана как действительное значение DateTime". DT =...

16
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
19.07.2018, 21:17
Цитата Сообщение от spaces_dima Посмотреть сообщение
C#
1
XElement date_registr = nameORZ.Element("РегистрационныйНомерИЗ");
Название элемента, значение которого присваивается переменной date_registr намекает на то, что там какое-то число.
А вы пытаетесь перевести его в дату.
Как выглядит значение в date_registr?
0
3 / 3 / 3
Регистрация: 29.02.2016
Сообщений: 175
19.07.2018, 21:36  [ТС]
<ДатаРегистрацииИЗ>29.09.2017 0:00:00</ДатаРегистрацииИЗ>
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
19.07.2018, 21:39
spaces_dima, могу предположить, что данный формат не соответствует формату даты, используемому в системе.
Чтобы этого избежать в случаях, когда дата приходит откуда-то извне, лучше при парсе указывать конкретный формат, который вас интересует:
C#
1
COM.Parameters["@date_registr"].Value = DateTime.ParseExact(date_registr.Value, "dd.MM.yyyy H:mm:ss", null);
0
3 / 3 / 3
Регистрация: 29.02.2016
Сообщений: 175
19.07.2018, 22:01  [ТС]
Additional information: Ошибка преобразования даты или времени из символьной строки.
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
19.07.2018, 23:48
spaces_dima, убедитесь, что формат, указанный в методе ParseExact, соответствует формату строки с датой.
0
3 / 3 / 3
Регистрация: 29.02.2016
Сообщений: 175
20.07.2018, 09:14  [ТС]
можно по подробнее про формат даты со строкой ? что только не делал появляется ошибка

Добавлено через 9 минут
C#
1
Commans.Parameters["@dataregistraciiICV"].Value = DateTime.ParseExact(dataregistraciiICV.Value, "dd.MM.yyyy H:mm:ss", null);
Additional information: Ошибка преобразования даты или времени из символьной строки.
как ее уже исправлять ?
в xml файле дата записана как 29.09.2017 0:00:00 ?

Добавлено через 1 час 50 минут
C#
1
2
3
                        Commans.Parameters.Add(new SqlParameter("@registrnomer", SqlDbType.NVarChar));
                        Commans.Parameters.Add(new SqlParameter("@registrasionnionomerIZ", SqlDbType.NVarChar));
                        Commans.Parameters.Add(new SqlParameter("@dataregistraciiICV", SqlDbType.DateTime));
C#
1
2
3
4
5
6
7
 XElement registrnomer = KOLLEKCIYA.Element("РегистрационныйНомерИЦБ");
 
 
 
                            XElement registrasionnionomerIZ = KOLLEKCIYA.Element("РегистрационныйНомерИЗ");
 
                            XElement dataregistraciiICV = KOLLEKCIYA.Element("ДатаРегистрацииИЦБ");
C#
1
2
3
Commans.Parameters["@registrnomer"].Value = Convert.ToString( registrnomer.Value);
                                Commans.Parameters["@registrasionnionomerIZ"].Value = registrasionnionomerIZ.Value;
                                Commans.Parameters["@dataregistraciiICV"].Value = DateTime.ParseExact(dataregistraciiICV.Value, "dd.MM.yyyy H:mm:ss", null);
SQL
1
2
 Commans.CommandText = "insert into ДАННЫЕ values(@registrnomer,@registrasionnionomerIZ ,@dataregistraciiICV)"; //,@Dateregistrations,@Numberkreditsdogovor,@Datezaklicheniyadogovorakrditnogo,@Summakredits)";   //,@Ostatok_po_kredity,@Procentnya_stavka_GIK,@LTV,@PPTY,@PTI,@number_dogovor_IZ,@Date_Dogovor_Iz,@Cpok_KpeDNTa,@Summa_ezimech_vznosa,@Procrochennaya_summa,@Kolischestvo_procrochennix_dney,@Date_Vozniknov_procrochki,@Kolich_procsroch_za_god,@stepen_Nspolneniya_po_ocn_dolgy,@Ctepn_obyazatelsv,@summa_neyspal_trebov,@dolya_pokritya,@Razmerpokritya,@adress_zaloga,@TNp_zaloga,@Organ_gos_registr,@Organ_zarez_IZ)"; // SQL ЗАПРОС НА ЗАПОЛНЕНИЕ БД ИЗ ФАЙЛА XML
                                Commans.ExecuteNonQuery();
An unhandled exception of type 'System.Data.SqlClient.SqlException' occurred in System.Data.dll

Additional information: Ошибка преобразования даты или времени из символьной строки.
<ДатаРегистрацииИЦБ>29.09.2017 0:00:00</ДатаРегистрацииИЦБ>
ЧТО ЕМУ ЕЩЕ НАДО УЖЕ ВТОРОЙ ДЕНЬ СИЖУ ИЗ ЭТОЙ ****

Добавлено через 53 секунды
C#
1
2
3
4
5
    XElement registrnomer = KOLLEKCIYA.Element("РегистрационныйНомерИЦБ");
 
                            XElement registrasionnionomerIZ = KOLLEKCIYA.Element("РегистрационныйНомерИЗ");
 
                            XElement dataregistraciiICV = KOLLEKCIYA.Element("ДатаРегистрацииИЦБ");
0
911 / 796 / 329
Регистрация: 08.02.2014
Сообщений: 2,391
20.07.2018, 09:37
Посмотрите формат даты в SQL самом, скорей всего формат SQL не соответствует тому что вы подаёте

Добавлено через 2 минуты
И посмотрите через отладку, что именно у Вас хранится в dataregistraciiICV.Value только дата, либо же как вы даёте строку:<ДатаРегистрацииИЦБ>29.09.2017 0:00:00</ДатаРегистрацииИЦБ> ?
0
3 / 3 / 3
Регистрация: 29.02.2016
Сообщений: 175
20.07.2018, 09:54  [ТС]
формат даты dateformat dmy, и скрин отладчика
Миниатюры
Данная строка не распознана как действительное значение DateTime. Обнаружено неизвестное слово,  
0
911 / 796 / 329
Регистрация: 08.02.2014
Сообщений: 2,391
20.07.2018, 10:08
вроде всё и нормально, попробуйте вот так ваш запрос сделать:
SQL
1
INSERT INTO ДАННЫЕ VALUES(@registrnomer,@registrasionnionomerIZ ,CONVERT(datetime, @dataregistraciiICV, 112))
p.s а в таблице у Вас только 3 столбца?
0
 Аватар для Wolflind
127 / 107 / 31
Регистрация: 17.03.2016
Сообщений: 445
Записей в блоге: 1
20.07.2018, 10:09
Проблема тут не в формате строки
0
911 / 796 / 329
Регистрация: 08.02.2014
Сообщений: 2,391
20.07.2018, 10:11
Wolflind, проблема в разнице форматов передаваемого из кода и принимаемого в sql
0
 Аватар для Wolflind
127 / 107 / 31
Регистрация: 17.03.2016
Сообщений: 445
Записей в блоге: 1
20.07.2018, 10:29
у меня встречались такие проблемы из-за того что на разный пользователях стоял разный язык но сейчас я использую
либо DataSet.xsd либо linq to sql и проблем нет он сам все из базы достает и настраивает.

Добавлено через 1 минуту
как вариант сменить региональные настройки если вспомню как напишу.

Добавлено через 8 минут
вот так вот
C#
1
System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US");
Добавлено через 3 минуты
И еще можно посмотреть через SQL Server Profiler что он там отправляет не раз выручал
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
20.07.2018, 11:02
Цитата Сообщение от spaces_dima Посмотреть сообщение
можно по подробнее про формат даты со строкой ?
Покажите пожалуйста код всего метода, а не урывками, а то пока что наблюдается что-то странное:
Цитата Сообщение от spaces_dima Посмотреть сообщение
C#
1
2
                XElement companyElement = nameORZ.Element("ДатаРегистрацииИЗ");
                XElement date_registr = nameORZ.Element("РегистрационныйНомерИЗ");
В переменной companyElement лежит значение элемента "ДатаРегистрацииИЗ", в переменной date_registr лежит значение элемента "РегистрационныйНомерИЗ".
Что-то мне подсказывает, что вы с присваиванием напутали.

Цитата Сообщение от SeIZVeIZ Посмотреть сообщение
Посмотрите формат даты в SQL самом, скорей всего формат SQL не соответствует тому что вы подаёте
Цитата Сообщение от SeIZVeIZ Посмотреть сообщение
проблема в разнице форматов передаваемого из кода и принимаемого в sql
Если параметр запроса имеет тип SqlDbType.DateTime и свойству Value присваивается значение типа DateTime, то драйвер сам его отформатирует под вид, приемлемый для СУБД.
0
3 / 3 / 3
Регистрация: 29.02.2016
Сообщений: 175
20.07.2018, 11:12  [ТС]
Теперь другой вопрос, после того как удалил таблицу и создал таблицу типа
SQL
1
2
3
4
5
6
CREATE TABLE [dbo].[ДАННЫЕ]
(
ID  INT NOT NULL PRIMARY KEY IDENTITY(1,1),
[Регистрационный Номер ИЦБ] VARCHAR(30),
[Регистрационный Номер ИЗ] VARCHAR(30),
[Дата Регистрации ИЦБ] VARCHAR(30))
все записывалось, после этого удалил эту таблицу и создал
новую как и была прежде
SQL
1
2
3
4
5
6
CREATE TABLE [dbo].[ДАННЫЕ]
(
ID  INT NOT NULL PRIMARY KEY IDENTITY(1,1),
[Регистрационный Номер ИЦБ] VARCHAR(30),
[Регистрационный Номер ИЗ] VARCHAR(30),
[Дата Регистрации ИЦБ] datetime)
все заработало в чем причина ????
0
3 / 3 / 3
Регистрация: 29.02.2016
Сообщений: 175
20.07.2018, 11:13  [ТС]
Миниатюры
Данная строка не распознана как действительное значение DateTime. Обнаружено неизвестное слово,  
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
20.07.2018, 11:14
Цитата Сообщение от spaces_dima Посмотреть сообщение
в чем причина ?
Наверное, в типе последней колонки.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.07.2018, 11:14
Помогаю со студенческими работами здесь

Непонятное исключение "Строка не распознана как действительное значение DateTime"
Есть файл timeTable.txt 02 00 05 00 08 00 10 00 12 00 14 00 15 00 16 00 17 00

Строка не распознана как действительное значение DataTime
Добрый вечер. При попытке заполнить табличку DataTable: DataTable table = new DataTable(); table.Load(reader) где reader - объект...

Строка не распознана как действительное значение DateTime
снова не могу понять DataTime, я еще новичок, была у меня просто форма с date. Но в этот раз сказали сделать через DataTime. Я не могу...

Не загружаются данные из SQLite c ошибкой "Строка не распознана как действительное значение DateTime" Entity Framework
Добрый день, подскажите пожалуйста: Имеется проект C# приложение windows form с entity framework code first на борту. С начала entity...

Строка не распознается как действительное значение DateTime
con = new SQLiteConnection(&quot;Data Source=&quot; + dbFile); con.Open(); com = con.CreateCommand(); ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
BOINC: 22 года — и всё ещё работает
Programma_Boinc 12.03.2026
BOINC: 22 года — и всё ещё работает Дэвид Андерсон написал ретроспективу. Кратко: в 2001 году он ушёл из United Devices, где был CTO, и за несколько месяцев написал ядро BOINC — клиент, сервер,. . .
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru