![]() |
![]() |
|
![]() |
![]() |
|
Programmierung Rat & Tat für Programmierer |
![]() |
|
Themen-Optionen | Ansicht |
![]() |
#1 |
Veteran
![]() Registriert seit: 08.02.2001
Alter: 41
Beiträge: 320
|
![]() Wieder mal bin ich zu dumm zum sche... programmieren!
Hab eine simple Tabelle, eine XML-Datei, deren Werte ich in die Tabelle einlesen will und ein C#-Programm, das dies alles erledigen soll. Mein Problem ist, dass die decimal-Werte der XML-Datei nie als Kommazahl in der DB gespeichert werden, obwohl alles als decimal deklariert ist. DB sieht folgendermaßen aus: mNodeID, uniqueidentifier mNodeNR, bigint mTimestamp, datetime mUser, nvarchar(100) mLatitude, decimal mLongitude, decimal c#-Programm so: Code:
SqlCommand dbcom = new SqlCommand("NodeInput", dbconn); dbcom.CommandType = CommandType.StoredProcedure; SqlParameter dbpar1 = dbcom.Parameters.Add("@id", SqlDbType.BigInt); dbpar1.Value = element.Attribute("id").Value; SqlParameter dbpar2 = dbcom.Parameters.Add("@lat", SqlDbType.Decimal); dbpar2.Value = System.Convert.ToDecimal(element.Attribute("lat").Value,System.Globalization.CultureInfo.InvariantCulture); SqlParameter dbpar3 = dbcom.Parameters.Add("@lon", SqlDbType.Decimal); dbpar3.Value = System.Convert.ToDecimal(element.Attribute("lon").Value, System.Globalization.CultureInfo.InvariantCulture); SqlParameter dbpar4 = dbcom.Parameters.Add("@user", SqlDbType.NVarChar, 100); dbpar4.Value = element.Attribute("user").Value; SqlParameter dbpar5 = dbcom.Parameters.Add("@timestamp", SqlDbType.DateTime); dbpar5.Value = element.Attribute("timestamp").Value; int sqlcount = dbcom.ExecuteNonQuery(); Code:
ALTER PROCEDURE [dbo].[NodeInput] ( @id bigint, @Timestamp datetime, @user nvarchar(100), @lat decimal, @lon decimal ) AS BEGIN SETNOCOUNTON; INSERT INTO ccNodes(mNodeID, mNodeNR, mTimestamp, mUser, mLatitude, mLongitude) VALUES (NewID(), @id, @timestamp, @user, @lat, @lon); END Ich hab schon alles mögliche versucht, aber immer wieder das selbe: 47.5637201 wird entweder als 475637201 oder als 48 gespeichert... Ich hoffe, irgendjemand kann mir da helfen. Ich dreh schon durch ![]()
____________________________________
Nein, ich bin nicht die Signatur, ich putz hier nur. http://www.chili-it.at |
![]() |
![]() |
![]() |
#2 |
Veteran
![]() Registriert seit: 08.02.2001
Alter: 41
Beiträge: 320
|
![]() aja, die xml-datei behinhaltet folgendes:
Code:
<node id="1234456" timestamp="2007-10-29T12:01:33Z" user="xyz" lat="47.5637201" lon="12.1581247"/>
____________________________________
Nein, ich bin nicht die Signatur, ich putz hier nur. http://www.chili-it.at |
![]() |
![]() |
![]() |
#3 |
Veteran
![]() Registriert seit: 08.02.2001
Alter: 41
Beiträge: 320
|
![]() passt, habs gelöst. in der stored procedure musste ich die parameter @lat und @lon mit der precision und scale aufrüsten
![]() @lat decimal(18,7) jetzt funktionierts!
____________________________________
Nein, ich bin nicht die Signatur, ich putz hier nur. http://www.chili-it.at |
![]() |
![]() |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|