Evosoul04 Ответов: 1

Почему SQLite преобразует . К ,


Всем привет,

Сейчас я совершенно сбит с толку SQLite.
Я использую версию System. Data.SQLite для C#

У меня есть два стола:

Таблица 1:
В нем я создал две колонки (больше, но они важны в данном случае, и заявление слишком долго его публиковать). Первый из них называется RecStat, а второй-DOXinM.
Оба являются десятичными и создаются следующим образом:
...
[RectStat] Decimal,
[DOXinM] Decimal,

...

Инструкция Create Table выглядит следующим образом:
Create Table If Not Exists "Table1"
(..Колонки..);

Когда я вставляю значение в эту таблицу, десятичная дробь работает отлично, а когда я ее читаю, она тоже работает в графическом интерфейсе xaml.

После этого я создал вторую таблицу, которая также имеет десятичный столбец.
Я создал таблицу таким же образом (это короткая таблица, поэтому я могу дать все утверждение целиком)
Create Table If Not Exists "Table2" (
 [ID] Integer Not Null Primary Key,
 [Material] VarChar(10],
 [Thickness] Decimal);


В обоих случаях я делаю одну и ту же вставку для десятичного столбца:
Insert into Table1 ('RectStat') values ('10.5');
Insert into Table1 ('DOXinM') values ('1.3');
Insert into Table2 ('Thickness') values ('0.25');


Теперь база данных вставляет первые два оператора как 10.5 / 1.3, а последний-как 0,25
Когда я считываю значение, первые два работают совершенно нормально, но последний отображается без цифр после десятичной "точки".

Так что мой вопрос таков.
Почему это происходит?
(Кстати, у меня в таблице более 20 десятичных столбцов, и "толщина" - единственная проблема с этой проблемой)

Надеюсь, вы сможете мне помочь.

заранее спасибо
Ричард

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

Пробовал разные значения (была надежда, что это из-за 0.25)
Попробовал без этого". Но тогда оператор думал, что у него есть три значения для двух столбцов...

Kornfeld Eliyahu Peter

Вы написали один раз 0,25 (с точкой) и один раз 0,25 ( с запятой) - как это написано в вашем коде (запятая-это неправильно!)

Evosoul04

В своем коде я пишу его с точкой. Но моя база данных сохраняет только этот с запятой

Kornfeld Eliyahu Peter

В этом нет никакого смысла...
1. БД не хранит точки или запятые, за исключением тех случаев, когда речь идет о строке, но речь идет о десятичных дробях. Точки и запятые относятся к форматированию дисплея...
2. "попробовал без этого". Но чем оператор думал, что у него есть три значения для двух столбцов... " - этот комментарий имеет смысл только в том случае, если вы написали это:
Вставить в таблицу 2 ("толщина") значения (0,25);
Эта строка не приведет к этой ошибке...
Вставить в таблицу 2 ("толщина") значения (0,25);

Evosoul04

Как я уже сказал, Я не понимаю ошибки. Но я нашел решение, я думаю, что было что-то не так с тем, как я Параметрировал свои значения. Я устал так, как" Бьерн " предложил в этой ссылке: http://stackoverflow.com/questions/809246/adding-parameters-in-sqlite-with-c-sharp
и это сработало

Maciej Los

Итак, опубликуйте ответ и отметьте его как "решение". Это удалит ваш список вопросов без ответа.

1 Ответов

Рейтинг:
7

Evosoul04

Я все еще не понимаю этой ошибки, но я нашел решение.
Наверное, что-то было не так с тем, как я параметрировал свои значения.

Я попробовал то, что" Бьерн " предложил в этой ссылке: [^]

Это сработало для меня