MS SQL Server + c#



  • Tach,
    wie bring ich ein Double.MaxValue in die datenbank?

    exception zur zeit:
    {"Error ExecProcSystem.Data.SqlClient.SqlException: The floating point value '1.79769313486232E+308' is out of the range of computer representation (8 bytes).\r\n at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)\r\n at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)\r\n at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)\r\n at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)\r\n at System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean async)\r\n at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe)\r\n at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()\r\n at meinfile}

    wer ne idee wie ich das lösen kann?
    mfg

    ps: das mit dem Double.MaxValue is net auf meinem mist gewachsen



  • Welchen Typ hat das Feld im SQL Server ?



  • float zur zeit. kann man aber ändern auf einen anderen numerischen typen



  • Wie soll nen double auch in nen Float reinpassen?
    Double ist doppelt so breit.



  • gehen beide auf 1,79e308 . also sollte das sich ausgehn



  • Und jetzt bitte noch mal einen Satz draus bilden.



  • ok. also
    1. float ist zur zeit für dieses attribut in der datenbank eingestellt. kann ich aber wenn es sein muss auf einen anderen nummerischen Typ umstellen.
    2. float (MS SQL Server) == double (c#) == 1,79E+308 => sollte sich in der DB ohne probleme ausgehen.



  • Okay, das SQLFloat auf Real gemappt wird wusst ich nicht, wie dem auch sei.

    Double.MaxValue ist größer als SqlDouble.MaxValue, zweiteres ist nämlich nur 1.79E+308 während ersteres 1.79769313486232e308 beträgt was deutlich größer ist.
    Deshalb wirst du ein Double.MaxValue nicht rein bekommen.


Anmelden zum Antworten