Почему 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
Итак, опубликуйте ответ и отметьте его как "решение". Это удалит ваш список вопросов без ответа.