I have an application that uses ADO.NET datasets and data adapters in combination with deletion (client-server architecture, transferring datasets via remote access).
Now I am facing the following problem:
TL DR: the double value 44.850000925362000turns into 44.850000925362004after sending the data set through remote access to the server.
I create a new row in the database, saving a dataset that contains a floating-point column (displayed in a double dataset). Stored double value44.850000925362
Then I read this line from the database ( DataAdapter.Fill) and got the same value (marked with BitConverter.DoubleToInt64). This dataset goes through remote access to the client and then merges into a usecase dataset on the client. Keeping the same value.
Then this data set is combined into a usecase data set, the row from which is imported into another table (because it is read from the view, stored in the table), and the value is changed before the usecase data set is transferred (now containing the row in another table).
On the client side, the value remains the same - but as soon as the data set reaches the server, the value in question is different (although no changes have been made for this particular column - it is still Unchangedand even the original value is different).
:
44.850000925362000
44.850000925362000
, , - 44.850000925362000
, 44.850000925362004 !
..., ConcurrencyException, 44.850000925362000 - 44.850000925362004 WHERE ( concurrency).
.
, . : , . , .
, .NET 4.0, ... , .
SQL, . WHERE SELECT, . , ( SQL Management Studio), , .
, .
, . 5 - , , . , , , ( ).