[Mono-devel-list] Re: Using floats with decimal comma from MS-SQL db (internationalisation)
Martin Honermeyer
maze at strahlungsfrei.de
Mon Oct 4 11:01:18 EDT 2004
I just helped myself with the following bit of code, inside the main loop (through all rows):
if(row.RowState == DataRowState.Modified) {
row["Vorauszahlung"] = Double.Parse(row["Vorauszahlung"].ToString()).ToString().Replace(",", ".");
row["Gutschrift"] = Double.Parse(row["Gutschrift"].ToString()).ToString().Replace(",", ".");
...
}
Every double or money field in the query has to be converted here.. This is really awkward!
Martin
Martin Honermeyer wrote:
> Hello,
>
> there is a big problem with using Float or Money values with DataSets and
> SqlClient on MS-SQL Server.
>
> I am doing a query from a table with Money values. Those are returned with
> decimal comma, as we are having a localized German database. Using a
> DataSet with a DataReader and a prepared update command, updating fails.
> This is because the comma is recognized as a separator between different
> fields.
>
> I worked around this by changing the NumberFormatInfo of the Culture in
> the current thread. This works as long as the float fields are changed
> (rewritten) before the adapter.Update().
>
> If not all float fields are changed in between, the update fails again,
> because the update statement is filled with the original field values,
> with contain the decimal comma.
>
>
> To cut a long story short, in my opinion this is a real shortcoming,
> supposedly in the TDS client code. From my point of view, it doesn't seem
> to convert float and money values correctly! This is really bad behaviour
> and I won't be able to get my program any further without a fix..
>
>
> Appreciating any help!
>
> Greetz,
> Martin
More information about the Mono-devel-list
mailing list