SQL десятичная проблема - PullRequest
       18

SQL десятичная проблема

0 голосов
/ 19 ноября 2009

У меня есть строка ввода в следующем формате: 12.34

Когда я звоню по этой линии:

db.AddInParameter(insertMessageDetailCommand, "AttachmentSize", System.Data.SqlDbType.Decimal  , Convert.ToDecimal(this.messageEnvelope.EnvelopeInfo.AttachmentSize));

Я получаю строку ввода не в правильном формате. На сервере, который я развернул, должны быть региональные настройки с разделителем «,» для десятичных дробей. Но другие производственные серверы могут иметь "." сепараторы.

Как я могу передать это строковое значение: 12.34 этой функции, чтобы оно не ломалось и было достаточно универсальным, чтобы противостоять любым региональным настройкам, которые вы выбрасывали?

1 Ответ

2 голосов
/ 19 ноября 2009

Укажите культуру при разборе строки, чтобы устранить различия в настройках сервера. Вы можете использовать InvariantCulture, который использует точку в качестве десятичного разделителя:

Convert.ToDecimal(this.messageEnvelope.EnvelopeInfo.AttachmentSize, CultureInfo.InvariantCulture)
...