Einzelnen Beitrag anzeigen
Alt 10.05.2009, 19:47   #1
Hussl
Veteran
 
Registriert seit: 08.02.2001
Alter: 41
Beiträge: 320


Standard sql server 2008, c#, decimal-werte ???

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();
und die angesprochene Stored Procedure folgendermaßen:

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
Hussl ist offline   Mit Zitat antworten