2009-10-02 3 views
2

У меня есть набор данных, содержащий данные, и я перечисляю все строки в этом datatable. При попытке форматирования столбца в этой строке я запускаю исключение. (Часть) код:преобразование из строки yyyyMMdd в тип integer недопустимо

For Each dr As DataRow In ds.Tables("records").Rows 
    file = dr("timestamp").ToString("yyyyMMdd") & "~.wav" 
Next 

Это приводит следующее сообщение об ошибке:

Преобразование из строки YYyyMmDd к типу Integer не действителен. (в переводе с сообщением об ошибке голландского на английский эквивалент)

др («метки времени»). Результаты GetType.FullName в «System.DateTime», так что я не понимаю, почему я бегу в это исключение, как например, Now.ToString («yyyyMMdd») приводит к результатам «20091002», а «Now» - того же типа, что и dr («timestamp»), «System.DateTime».

ответ

11

Попробуйте

For Each dr As DataRow In ds.Tables("records").Rows 
    file = CDate(dr("timestamp")).ToString("yyyyMMdd") & "~.wav" 
Next 
+0

Это сделало трюк. Большое спасибо за то, что помогли мне. К сожалению, я не могу изменить ваш ответ, так как у меня нет необходимых кредитов для этого :( – George

+0

Ну, он получил +1 от меня;) Также вы можете задать свой ответ как «принятый», щелкнув зеленый «v» "(галочка) под номером вверх/вниз. –

+2

Хотя эта галочка довольно большая, я ее не заметил;) Ответ теперь принят. – George

0

Вы убедились, что вы не объявляя «файл» переменную как целое?

+0

файл был объявлен как строка, но спасибо за помощь в любом случае. – George