2013-03-22 5 views
5

Ich möchte NaN-Werte in die SQLite-Datenbank einfügen.NaN-Werte in der SQLite-Datenbank speichern

Ich habe Ent Tabelle mit Id, StringColumn und DoubleColumn (nicht nullable) und ich versuche, die folgende SQL-Anweisung verwenden:

INSERT INTO Ent (Id, StringColumn, DoubleColumn) VALUES (1, 'NaN test', ????) 

Ich weiß nicht, was anstelle von ‚setzen ???? " NaN gespeichert haben.

Ich greife auf die Datenbank mit System.Data.SQLite - vielleicht ist das auch wichtig?

+0

Sie könnten stattdessen NULL verwenden? Das würde einem ähnlichen Zweck dienen. – SDC

Antwort

1

SQLite enthält keine textuelle Darstellung der NaN-Werte.

In SQL verhält sich das spezielle NULL in Berechnungen ähnlich und kann den gleichen Zweck erfüllen.

+0

Danke für den Hinweis. Ich habe versucht, in diesem Fall Null zu verwenden, aber ich erhalte den Fehler "Abbruch aufgrund von Constraint-Verletzung. Ent.DoubleColumn darf nicht NULL sein". Der einzige Weg, um es zum Laufen zu bringen, besteht darin, DoubleColumn in NULL-Werte zu ändern. –

1

Der Trick, den ich derzeit verwende, ist das Speichern von -Infinity auf Real-Spalten, wenn null nicht ausreicht oder nicht erlaubt ist (da Sie "nicht null" in dieser Spalte haben).

4

SQLite ist eher ... lax ... über Datentypen. Fühlen Sie sich frei, "NaN" in eine Spalte zu setzen, die als "doppelt" definiert ist. Oder "Unendlichkeit". Oder "doppelt", in der Tat. SQLite interessiert das nicht.