Hallo Claudius,
hier der Code, wo gerundet wird und keine Dezimalstellen herauskommen,
die SP:
CREATE PROCEDURE GetProductDetail
(
@ProductID int,
@ModelNumber nvarchar(256) OUTPUT,
@ModelName nvarchar(256) OUTPUT,
@ImagesURL nvarchar(256) OUTPUT,
@Preis decimal (19, 2) OUTPUT,
@DescriptionShort nvarchar(1024) OUTPUT,
@DescriptionLong nvarchar(3800) OUTPUT
)
AS
SELECT
@ProductID = ProductID,
@ModelNumber = ModelNumber,
@ModelName = ModelName,
@ImagesURL = ImagesURL,
@Preis = Preis,
@DescriptionShort = DescriptionShort,
@DescriptionLong = DescriptionLong
FROM
Products
WHERE
ProductID = @ProductID
GO
Und hier .NET:
...
// Create Instance of Connection an Command Object
SqlConnection myConnection =
new SqlConnection(this.myConnectionString);
SqlCommand myCommand =
new SqlCommand("GetProductDetail", myConnection);
// Mark the Command as a stored procedure
myCommand.CommandType = CommandType.StoredProcedure;
// Add Parameters to the stored procedure
myCommand.Parameters.Add("@ProductID", SqlDbType.Int).Value = productID;
// Output Parameters >> hier k�nnte der Fehler irgendwo stecken
SqlParameter parameterPreis = new SqlParameter("@Preis", SqlDbType.Decimal);
parameterPreis.Direction = ParameterDirection.Output;
myCommand.Parameters.Add(parameterPreis);
...
// Open the Connection and execute the Command
myConnection.Open();
myCommand.ExecuteNonQuery();
myConnection.Close();
...
// Create und Pupulate ProductDetails Struct using Output Params
// from the stored procedure
clsProductDetails myProduktDetails = new clsProductDetails();
// oder hier k�nnte der Fehler irgendwo stecken
if (parameterPreis.Value != System.DBNull.Value)
myProduktDetails.Preis = (decimal)parameterPreis.Value;
else
myProduktDetails.Preis = (decimal)0.00;
...
return myProduktDetails;
Ich probiere selbst nat�rlich auch weiterhin. Falls Du auf "den ersten
Blick" den Fehler siehst, vielen Dank f�r den Hinweis im Voraus,
viele Gr��e
Bernhard
-----Urspr�ngliche Nachricht-----
Von: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Im
Auftrag von Claudius Ceteras
Gesendet: Freitag, 3. September 2004 15:58
An: [EMAIL PROTECTED]
Betreff: RE: [Asp.net] Dezimalstellen bei Wert aus der Datenbank
> Wenn ich die Datenbank mit "Select * from ..." abfrage, und das
> Ergebnis einem SqlDataReader �bergebe, erhalte ich korrekt 54,50
> angezeigt.
> Wenn ich �ber eine gespeicherte Prozedur und Output-Parmeter gehe,
> kommt aus der selben Tabelle 55 zur�ck.
Welchen typ hat der output-Parameter in der SP? Ist der Typ auch beim Aufruf
richtig angegeben?
Zeig mal dein Code - SP und .NET
Claudius
_______________________________________________
Asp.net Mailingliste, Postings senden an:
[EMAIL PROTECTED]
An-/Abmeldung und Suchfunktion unter:
http://www.glengamoi.com/mailman/listinfo/asp.net
_______________________________________________
Asp.net Mailingliste, Postings senden an:
[EMAIL PROTECTED]
An-/Abmeldung und Suchfunktion unter:
http://www.glengamoi.com/mailman/listinfo/asp.net