|
Синтаксический разбор строк
|
|||
---|---|---|---|
#18+
Здравствуйте Мне нужно переписать значения из одного adotable в другой. Но при компиляции по двум значениям выходит ошибка: Входная строка имела неверный формат. Совет: при преобразовании строки в дату/время выполните синтаксический разбор строки, чтобы получить дату перед помещением каждой переменной в объект. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Ошибка при конвертации здесь: Код: c# 1. 2. 3. 4. 5.
В adotable1 значения Sk и Re прописаны как String (там пришлось удалять много символов), а в adotable2 как Decimal, а DataTime у меня вообще нет. Значения в этих обеих полях всегда содержат точку: Sk = 9.2 Re = 235665.24874 Из-за точек наверное и проблема. Как мне сделать синтаксический разбор этих строк? Примеров не нашла. Заранее большое спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2014, 23:56 |
|
Синтаксический разбор строк
|
|||
---|---|---|---|
#18+
XXL, Если дело действительно в точке, то решить это можно установкой CultureInfo.InvariantCulture в методе ToDecimal() в качестве второго параметра: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
но это не избавит от проблем, если в ячейке будет пустая строка, или null, или вообще какой бред отличный от цифр. В таком случае лучше бы использовать Decimal.TryParse ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2014, 04:18 |
|
Синтаксический разбор строк
|
|||
---|---|---|---|
#18+
XXL, попробуй вообще убрать ToString(). Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Вообще раз ты работаешь с DataSet, то лучше было бы использовать типизированный DataSet и тогда проблем с преобразованием не будет. P.S. Вызов EndEdit() здесь не нужен поэтому я его убрал. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2014, 08:59 |
|
Синтаксический разбор строк
|
|||
---|---|---|---|
#18+
bazileXXL, попробуй вообще убрать ToString(). Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Вообще раз ты работаешь с DataSet, то лучше было бы использовать типизированный DataSet и тогда проблем с преобразованием не будет. P.S. Вызов EndEdit() здесь не нужен поэтому я его убрал. Без ToString все тоже самое ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2014, 09:14 |
|
Синтаксический разбор строк
|
|||
---|---|---|---|
#18+
JeStoneXXL, Если дело действительно в точке, то решить это можно установкой CultureInfo.InvariantCulture в методе ToDecimal() в качестве второго параметра: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
но это не избавит от проблем, если в ячейке будет пустая строка, или null, или вообще какой бред отличный от цифр. В таком случае лучше бы использовать Decimal.TryParse Большое спасибо. Этот вариант работает. В принципе null никогда не будет и будут только цифры. Но хотелось бы узнать решение с Decimal.TryParse. Наверное, это более правильно. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2014, 09:16 |
|
Синтаксический разбор строк
|
|||
---|---|---|---|
#18+
XXL, более правильно в стороне держаться от задач подобных этой: авторМне нужно переписать значения из одного adotable в другой. через TryParse это выглядеть будет примерно так Код: c# 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2014, 11:05 |
|
|
start [/forum/topic.php?fid=20&msg=38845195&tid=1402071]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
33ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
others: | 367ms |
total: | 504ms |
0 / 0 |