LisaEichfeld
Hallo, Guten Morgen zusammen. (ich habe die suche benutzt, es gab keine ergebnisse, selbt wenn ich nur allein mit sqlite versucht hab)
Mein problem hab ich mit einer tabelle, in meiner sqlite.dat datenbank.
Wenn ich einfach per SELECT * FROM ein datatable fülle, dann werden aus dezimalzahlen ganze zahlen. Ich habe dann den datentyp von real auch double geändert, weil ich lesen konnte dass real veraltet ist, gebracht hat es nichts. Dass die zahlen als dezimalzahlen gespeichert wurden, kann ich sehen wenn ich die tabelle mit dem sqlitemanger öffne.
Ich benutze für den Zugriff aus meiner VS2008 Winform App das SQLite-1.0.66.0.
Mein Code ist ganz smple
Code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
|
Public Sub test()
' declarationen für die objecte
....
..
' Dann habe ich die datatable und ein Dataset
Dim myDt as Datatable
dim myDs as Dataset
' den sql string
Dim strSQl as String
strSQL = "SELECT dasFeld FROM mytable"
'fülle das Dataset via Sqlitedataadapter
Sqlitedataadapter.fill(ds,"tbltest")
'fülle dann die Tabelle
mydt = ds.Table(0)
' und lasse mir dann den Inhalt anzeigen, mit Haltepunkt und dann mit der maus draufzeigen, dann seh ich nur ganze zahlen
End Sub |
|
san-software
Ich hatte das Gleiche mal bei einer Oracle-DB, und musste dann feststellen, daß die Admins die standardmässig mit deutscher, sondern amerikanischer Spracheinstellung definiert hatten. Da wirkt das Komma als Tausender-Trennzeichen.
Leider kenne ich SQLLite nicht, aber ich vermute, daß es etwas in dieser Richtung ist.
bwolf1
Sind die Daten denn wirklich Dezimal? vielleicht hast du beim Anlegen der Spalten, den Spaltentyp auf "Integer" gestellt?
FZelle
| Zitat: |
| Ich habe dann den datentyp von real auch double geändert |
Wo hast du den Datentyp geändert.
Es ist noch zu bedenken das die sehr alte Version 1.0.66 einige Fehler hatte.
Schon mal die Version
1.0.81 versucht?
LisaEichfeld
Danke an alle die geantwortet haben, damit hatte ich nicht gerechnet.
Den datentyp hatte ich in der sqlite tabele geändert.
Ich werd die neuere Version mal versuchen, die 66 hab ich weil per google nur eine seite kam mit dieseer version, es wird dort nur diese eine angeboten.
FZelle
Dann hast du auf der Seite aber nicht richtig weitergelesen.
http://sqlite.phxsoftware.com/
Da steht gleich als erstes:
| Zitat: |
Announcement
The folks at SQLite.org have taken over ownership of the System.Data.SQLite project. New releases can be found at the new site, System.Data.SQLite.org |
FZelle
Da bei mir sowohl in C# als auch in VB.NET der SQLite Provider das macht was er soll, kann ich nur sagen das es an irgendwas in deinem Code liegen muss.
LisaEichfeld
glaube ich nich, ich glaube es liegt daran wo man den datentyp ändert, mal sehen ob da einer ist der was weis, was du nicht weisst.
xxMUROxx
@LisaEichfeld,
FZelle meint es durch die Hilfe gut mit dir und du wirfst ihm vor dass er es nicht weiß.

Ich denke, dass man auch eingestehen kann, dass man selbst einen Fehler macht, vor allem da FZelle, so wie man im Forum sieht, sehr erfahren in SQL ist.
Nun zum Thema.
Ich habe mich vorgestern auch mit dem Decimal Typ herumgeplagt, jedoch in MSSQL. Ich hatte folgendes Problem:
Code: |
1:
2:
3:
|
DECLARE @test1 decimal = 5 / 2; PRINT @test1; --Ausgabe 2
DECLARE @test2 decimal = CAST(5 AS decimal) / 2; PRINT @test2 --Ausgabe 3
DECLARE @test3 decimal(2,1) = CAST(5 AS decimal) / 2; PRINT @test3 --Ausgabe 2.5 |
|
Also wie du siehst kann doch der Fehler bei dir liegen. Kontrollier mal den SQL Command, so wie er ankommt, und dann den Code.
Gruß,
Michael
LisaEichfeld
Ich behaupte das war kein vorwurf, und nu? Wenn ich falsch nicht gesehen hab dass es gut gemeint war, dann ist deine feststellung vom vorwurf ja vielleicht auch falsch.
Mit solchen antworten öffnet man die büchse der pandora.
Vielleicht hätte ich selbst es auch so betrachtet, als vorwurf, aber es abtropfen lassen, nicht noch einen freund herbeibestellen, der noch mithilft den a... zu zeigen.
Mein code hat bis jetzt keine zeile, mit denen die zahlen nochmal zubereitet werden.
Sieht aber so aus als müsste das geschehen(auch mit bick auf deinen code).
Falls da die lösung liegt, falls das geschehen muss, trotz der ADO-brücke, so wäre das ein nützlicher tipp gewesen.
Den Topf mit den datentypen(wo geändert) hat er selber aufgemacht, nur, wozu? Am ende tote hose (aber kein vorwurf nur feststellung)
FZelle
Auch wenn du es nicht verstehen willst, mit
| Zitat: |
| Den datentyp hatte ich in der sqlite tabele geändert. |
kann hier keiner etwas anfangen denn es gibt gerade bei SQLite kein in der DB.
Also wie und wo hast Du das gemacht?
Welchen Datentyp hast du genommen und vor allem mit wie vielen Nachkommastellen hast du den angelegt?
Wenn Du antworten haben willst solltest Du aufhören andere Leute zu beleidigen und lernen das auch Du Fehler machen kannst und das auch akzeptieren.
Wie kommt es das Frauen so schlecht Kritik vertragen können und immer meinen man will ihnen etwas Böses?
Nur weil du das so machen würdest?