Guten Abend,
ich habe ein kleines Problem mit dem Speichern bzw. Auslesen von Fließkommazahlen aus einer SQLite-Datenbank.
Wenn ich eine Fließkommazahl in die Datenbank speichern und anschließend wieder lade, werden mir nur die Zahlen vor dem Komma ausgegeben.
Ich habe herausgefunden, dass die Zahlen mit einem Komma in die Datenbank gespeichert werden, also 1,95. Korrekt wäre meines Wissens nach aber mit Punkt, also 1.95.
Wenn ich den Wert über das Tool 'DB Browser for SQLite' auf 1.95 ändere, wird dieser anschließend auch korrekt ausgegeben.
Eine korrekte Ausgabe erfolgt auch, wenn ich beim Erstellen der Tabelle als Datentyp TEXT angebe, anstelle von DOUBLE.
Wie kann ich die Zahlen in der korrekten Form in der Datenbank speichern, damit ich sie anschließend auch wieder ausgeben kann?
Hier einmal mein Code:
Vielen Dank schon mal
ich habe ein kleines Problem mit dem Speichern bzw. Auslesen von Fließkommazahlen aus einer SQLite-Datenbank.
Wenn ich eine Fließkommazahl in die Datenbank speichern und anschließend wieder lade, werden mir nur die Zahlen vor dem Komma ausgegeben.
Ich habe herausgefunden, dass die Zahlen mit einem Komma in die Datenbank gespeichert werden, also 1,95. Korrekt wäre meines Wissens nach aber mit Punkt, also 1.95.
Wenn ich den Wert über das Tool 'DB Browser for SQLite' auf 1.95 ändere, wird dieser anschließend auch korrekt ausgegeben.
Eine korrekte Ausgabe erfolgt auch, wenn ich beim Erstellen der Tabelle als Datentyp TEXT angebe, anstelle von DOUBLE.
Wie kann ich die Zahlen in der korrekten Form in der Datenbank speichern, damit ich sie anschließend auch wieder ausgeben kann?
Hier einmal mein Code:
VB.NET-Quellcode
- Private Sub btn_CreateTestDB_Click(sender As Object, e As EventArgs) Handles btn_CreateTestDB.Click
- 'Datenbank erstellen
- Dim connect As New SQLiteConnection()
- connect.ConnectionString = "Data Source=TestDB.db"
- connect.Open()
- connect.Close()
- 'Tabelle erstellen
- Dim command As SQLiteCommand
- connect.ConnectionString = "Data Source=TestDB.db"
- connect.Open()
- command = connect.CreateCommand
- command.CommandText = "CREATE TABLE Tab_Test(ID INTEGER PRIMARY KEY AUTOINCREMENT,TEST DOUBLE);"
- command.ExecuteNonQuery()
- command.Dispose()
- connect.Close()
- MsgBox("DB wurde erstellt")
- End Sub
- Private Sub btn_testSave_Click(sender As Object, e As EventArgs) Handles btn_testSave.Click
- 'Verbindung herstellen
- Dim SQLconnect As New SQLite.SQLiteConnection()
- Dim SQLcommand As SQLiteCommand
- SQLconnect.ConnectionString = "Data Source=TestDB.db"
- SQLconnect.Open()
- SQLcommand = SQLconnect.CreateCommand
- 'SQL-Befehl in String speichern
- Dim dblTest As Double = 1.59
- Dim SQLCommandSave As String = "INSERT INTO Tab_Test (TEST) VALUES (" & "'" & dblTest & "')"
- 'Befehl ausführen und Daten speichern
- SQLcommand.CommandText = SQLCommandSave
- SQLcommand.ExecuteNonQuery()
- 'Verbindung schließen
- SQLcommand.Dispose()
- SQLconnect.Close()
- MsgBox("Datensatz gespeichert")
- End Sub
- Private Sub btn_testLoad_Click(sender As Object, e As EventArgs) Handles btn_testLoad.Click
- tb_test.Text = ""
- Dim SQLconnect As New SQLite.SQLiteConnection()
- Dim SQLcommand As SQLiteCommand
- SQLconnect.ConnectionString = "Data Source=TestDB.db"
- SQLconnect.Open()
- SQLcommand = SQLconnect.CreateCommand
- SQLcommand.CommandText = "Select * FROM Tab_Test"
- Dim SQLreader As SQLiteDataReader = SQLcommand.ExecuteReader()
- Dim strWert = Nothing
- While SQLreader.Read
- strWert = SQLreader(1)
- End While
- tb_test.Text = strwert
- End Sub
Vielen Dank schon mal