powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / c# вставка в postgresql
12 сообщений из 12, страница 1 из 1
c# вставка в postgresql
    #39045827
wild888
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
приветствую, не могу понять почему вылетает исключение "ОШИБКА: 22P02: неверный синтаксис для типа double precision: "30,6503""???
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
 double tek1 = cl.ReadReal("tek1", out err);
            double tek2 = cl.ReadReal("tek2", out err);
            double tek3 = cl.ReadReal("tek3", out err);
            double tek4 = cl.ReadReal("tek4", out err);
            double tek5 = cl.ReadReal("tek5", out err);
            double tek6 = cl.ReadReal("tek6", out err);
            double tek7 = cl.ReadReal("tek7", out err);
            double tek8 = cl.ReadReal("tek8", out err);
            double tek9 = cl.ReadReal("tek9", out err);
            double up = cl.ReadReal("up", out err);
            double uz1 = cl.ReadReal("uz1", out err);
            double uz2 = cl.ReadReal("uz2", out err);
            double uz3 = cl.ReadReal("uz3", out err);
            textErr.Text = cl.ErrTxt;
            con.Open();
            NpgsqlCommand pechka = new NpgsqlCommand("INSERT INTO pechka(read_time,t_tek_1,t_tek_2,t_tek_3,t_tek_4,t_tek_5,t_tek_6,t_tek_7,t_tek_8,t_tek_9,u_p,u_z_1,u_z_2,u_z_3,time_sec) VALUES ('" + time15.ToString() + "','" +
             tek1.ToString("N4") + "','" + tek2.ToString("N4") + "','" + tek3.ToString("N4") + "','" + tek4.ToString("N4") + "','" + tek5.ToString("N4") + "','" + tek6.ToString("N4") + "','" +
             tek7.ToString("N4") + "','" + tek8.ToString("N4") + "','" + tek9.ToString("N4") + "','" + up.ToString("N4") + "','" + uz1.ToString("N4") + "','" + 
             uz2.ToString("N4") + "','" + uz3.ToString("N4") + "','" + time_value.ToString() + "')", con);
            int count_pechka = pechka.ExecuteNonQuery();
            con.Close();
...
Рейтинг: 0 / 0
c# вставка в postgresql
    #39045843
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
наверное потому, что десятичным разделителем должна быть точка?
...
Рейтинг: 0 / 0
c# вставка в postgresql
    #39045867
wild888
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro, попробовал, то же исключение...
...
Рейтинг: 0 / 0
c# вставка в postgresql
    #39045878
wild888
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wild888Shocker.Pro, попробовал, то же исключение...
проверил в эксплорере, да даёт записать только с точкой!! а в студии в дебаге они тоже с точкой, однако в исключении показывает с запятой,как же так???
...
Рейтинг: 0 / 0
c# вставка в postgresql
    #39045914
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На чистый ToString в таких ситуациях НЕЛЬЗЯ полагаться, потому что десятичный разделитель он вставит тот, который прописан в региональных настройках панели управления, а там хоть слово из трех букв можно написать и твоя програ работать не будет.
...
Рейтинг: 0 / 0
c# вставка в postgresql
    #39045925
wild888
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,"На чистый ToString в таких ситуациях НЕЛЬЗЯ полагаться" согласен) темболее на мсдн ToString("F4") - разделитель точка но и это не помогло, сделал так:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
 tek1 = Math.Round(tek1,4);
            tek2 = Math.Round(tek2, 4);
            tek3 = Math.Round(tek3, 4);
            tek4 = Math.Round(tek4, 4);
            tek5 = Math.Round(tek5, 4);
            tek6 = Math.Round(tek6, 4);
            tek7 = Math.Round(tek7, 4);
            tek8 = Math.Round(tek8, 4);
            tek9 = Math.Round(tek9, 4);
            up = Math.Round(up, 4);
            uz1 = Math.Round(uz1, 4);
            uz2 = Math.Round(uz2, 4);
            uz3 = Math.Round(uz3, 4);
            textErr.Text = cl.ErrTxt;
            con.Open();
            NpgsqlCommand pechka = new NpgsqlCommand("INSERT INTO pechka(read_time,t_tek_1,t_tek_2,t_tek_3,t_tek_4,t_tek_5,t_tek_6,t_tek_7,t_tek_8,t_tek_9,u_p,u_z_1,u_z_2,u_z_3,time_sec) VALUES ('" + time15.ToString() + "','" +tek1+ "','" + 
            tek2 + "','" + tek3 + "','" + tek4 + "','" + tek5 + "','" + tek6 + "','" + tek7 + "','" + tek8 + "','" + tek9 + "','" + up + "','" + uz1 + "','" + uz2 + "','" + uz3 + "','" + time_value.ToString() + "')", con);
            int count_pechka = pechka.ExecuteNonQuery();
            con.Close();
...
Рейтинг: 0 / 0
c# вставка в postgresql
    #39045927
wild888
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
и тоже не помогло :DDD
...
Рейтинг: 0 / 0
c# вставка в postgresql
    #39045940
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wild888темболее на мсдн ToString("F4") - разделитель точка но и это не помогломлин, потому что msdn писали американцы, у которых в панели управления прописана точка.

Блин, нафига ты double суешь в строку без ЯВНОГО преобразования в строку В ПРАВИЛЬНОМ формате. Почитай уже про форматирование чисел. Тебе нужно явно отформатировать число с точкой. Почитай про "культуру".
...
Рейтинг: 0 / 0
c# вставка в postgresql
    #39045966
wild888
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro, спасибо разобрался)))
...
Рейтинг: 0 / 0
c# вставка в postgresql
    #39046929
Фотография a_voronin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wild888,

Вы ребята про то, что такое параметры у запросы слашали? Или их за вас должен начать использовать ДБА?
...
Рейтинг: 0 / 0
c# вставка в postgresql
    #39046948
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a_voronin,

Вставлять в колонку t_tek_9 таблицы pechka надо только хардкорной строкой, без параметров. А то не по фен-шую будет.
...
Рейтинг: 0 / 0
c# вставка в postgresql
    #39046975
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a_voroninwild888,

Вы ребята про то, что такое параметры у запросы слашали? Или их за вас должен начать использовать ДБА?

лайкнул
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / c# вставка в postgresql
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]