私は今、SQLiteによって完全に混乱しています。私は2つの列を作成していることで (詳細はしかし、彼らは、この場合に重要であり、文は次のとおりです。なぜsqliteが変換されるのですか? To、
表1: 私は2つのテーブルを持っているC#
ためSystem.Data.SQLiteバージョンを使用しますそれを投稿するには長い間)。最初のものはRecStatと呼ばれ、2番目のものはDOXinMと呼ばれます。 どちらも、小数であり、このように作成されます。
[RectStat] Decimal,
[DOXinM] Decimal,
... ...
CREATE TABLEステートメントは、次のようになります。
Create Table If Not Exists "Table1"
(..Columns..);
私は価値の挿入この表は小数点が完全にうまく動作し、読んだときにはxaml GUIでも動作します。
その後、私は小数点以下桁も持つ2番目のテーブルを作成しました。 私は(私はすべてのSQLコマンド用のconst文字列で動作することに注意してください)を作成するためのテーブルを同じ方法で(これは短いものであるので、私は全体の声明を与えることができます)
Create Table If Not Exists "Table2" (
[ID] Integer Not Null Primary Key,
[Material] VarChar(10],
[Thickness] Decimal);
C#コードを作成しました:表2を挿入するために
Insert into Table1 ('RectStat') values ('10.5');
Insert into Table1 ('DOXinM') values ('1.3');
Insert into Table2 ('Thickness') values ('0.25');
::私は10進数の列に同じ挿入を行い、両方の場合
mySQLiteCommand.CommandText = @"" + DatabasePara.CREATE_SQL + " " + DatabasePara.TABLE_SQL + " " + DatabasePara.IF_SQL + " " + DatabasePara.NOT_SQL + " " + DatabasePara.EXISTS_SQL + " " + DBTableFilter.Filter + "
mySQLiteCommand.CommandText += @"([" + DBTableFilter.ID + "] " + DatabasePara.INTEGER_SQL + " " + DatabasePara.NOT_SQL + " " + DatabasePara.NULL_SQL + " " + DatabasePara.PRIMARYKEY_SQL + ", ";
mySQLiteCommand.CommandText += @"[" + DBTableFilter.Material + "] " + DatabasePara.VARCHAR_SQL + "(360), ";
mySQLiteCommand.CommandText += @"[" + DBTableFilter.Thickness + "] " + DatabasePara.DECIMAL_SQL + ");";
mySQLiteCommand.ExecuteNonQuery();
for (int FilterIndex = 0; FilterIndex < Database.FilterTable.FilterList.Count; FilterIndex++)
{
mySQLiteCommand.CommandText = @"" + DatabasePara.INSERTINTO_SQL + " " + DBTableFilter.Filter + "(" + DBTableFilter.Material + ", " + DBTableFilter.Thickness + ") ";
mySQLiteCommand.CommandText += @"" + DatabasePara.VALUES_SQL + " ('" + Database.FilterTable.GetFilterAt(FilterIndex).Material_Property + "', " + Database.FilterTable.GetFilterAt(FilterIndex).Thickness_Property + ");";
mySQLiteCommand.ExecuteNonQuery();
}
私は最初の2つの作品は完全に罰金値を読み出したが、最後の1が後に番号なしで表示されたら今のデータベースは0,25 として10.5/1.3のように最初の2文と最後の1を挿入小数点"。
だから私の質問です。 これはなぜ起こりますか? (Btw私のテーブルには20個以上の小数点以下の桁があります。この問題のある唯一のものは「厚さ」です)
私はあなたを助けてくれることを願っています。事前に
おかげで リチャード、私が試してみました何
:
しようとした別の値が「」なしでそれを試してみました (それが原因で0.25であったという希望を持っていました)。しかし、文は、すべての
idは、デフォルトの言語設定が使用されているためです。 – BugFinder
どこで見つけるのですか?そして、なぜ違った行動をするのですか? – Evosoul
read @stackoverflow.com/questions/28084261/comma-vs-dot-as-decimal-separator – BugFinder