|
|
|
Поменять тип данных колонки DataTable
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! DataTable dt=new DataTable(); dt.Columns.Add("N", typeof(string)); dt.Columns.Add("Колонка", typeof(string)); Далее dt как-то заполняется. И в один прекрасный момент хочется изменить тип данных колонки "N" на int. Естественно, все данные в этой колонке целочисленные. Как это сделать без использования дополнительных DataTable и без XML и без сиквела? Фреймворк 2.0 Как-то не нашел соответствующий метод. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2009, 15:07 |
|
||
|
Поменять тип данных колонки DataTable
|
|||
|---|---|---|---|
|
#18+
VitalyB, Код: plaintext 1. А засем это вообсе делать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2009, 15:17 |
|
||
|
Поменять тип данных колонки DataTable
|
|||
|---|---|---|---|
|
#18+
Далее, эту DataTable надо подсунуть внешней DLL, которая что-то делает и сохраняет в DBF. DLL не правится и хозяина нет, она сохраняет в DBF с теми типами полей, которые я передал в DataTable. А поле "N" должно быть int. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2009, 15:23 |
|
||
|
Поменять тип данных колонки DataTable
|
|||
|---|---|---|---|
|
#18+
VitalyB, кхм... а срузу его сделать интом нельзя? Религия не позволяет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2009, 15:26 |
|
||
|
Поменять тип данных колонки DataTable
|
|||
|---|---|---|---|
|
#18+
Вы вынуждаете меня описывать задачу. Нет, сразу сделать интом нельзя, т.к. первоначально в поле "N" содержаться текстовые значения. Оператор долго-долго работает и все значения превращаются в целочисленные. Я, вообще-то хотел узнать, есть ли метод преобразования типов столбцов в DataTable Из одного типа в другой. Если нет, то буду делать через дополнительную DataTable. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2009, 15:34 |
|
||
|
Поменять тип данных колонки DataTable
|
|||
|---|---|---|---|
|
#18+
VitalyB, вот попробуй в набор добавить сразу инт колонку. По мере работы твоего ОператораПК будешь заполнять твою инт колонку. А после, перед передачей таблицы в ДЛЛ замочешь ненужный тебе стринг столбец... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2009, 15:36 |
|
||
|
Поменять тип данных колонки DataTable
|
|||
|---|---|---|---|
|
#18+
Пгуые123 - опасный человек! Из кого-угодно информацию вытянет! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2009, 15:44 |
|
||
|
Поменять тип данных колонки DataTable
|
|||
|---|---|---|---|
|
#18+
Спасибо за совет, я знаю как выйти из положения. Можно Вашим способом, можно скинуть DataTable в типизированный XML, там поменять тип столбца и опять загрузить XML в DataTable, можно создать другую DataTable и перезаписать туда данные и т.д. Но меня интересует, есть ли метод (типа Columns.Add) на изменение типа данных? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2009, 15:45 |
|
||
|
Поменять тип данных колонки DataTable
|
|||
|---|---|---|---|
|
#18+
Придумал сходу. Сделай метод в котором добавь новый целочисленный столбец к таблице затем в цикле пробегись по всем rows и скопируй из оригинального столбца данные (int.TryParse()). В конце сохрани имя оригинального столбца удали его и переименуй целочисленный столбец. Жуть, конечно, но выполняемо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2009, 15:53 |
|
||
|
Поменять тип данных колонки DataTable
|
|||
|---|---|---|---|
|
#18+
То же вариант, но я упростил задачу. Таких столбцов - неизвестное количество. Но это не беда. Беда в том, что новая DataTable должна бать полностью аналогична исходной. Пример: Я добавляю свою инт колонку и она принимает номер, допустим 7 А колонка "N" имеет номер 3 После удаление "N" и переименования новой колонки в "N" столбец будет иметь номер 6 Это не допустимо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2009, 16:09 |
|
||
|
Поменять тип данных колонки DataTable
|
|||
|---|---|---|---|
|
#18+
VitalyBНо меня интересует, есть ли метод (типа Columns.Add) на изменение типа данных? нет, такого метода нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2009, 17:28 |
|
||
|
Поменять тип данных колонки DataTable
|
|||
|---|---|---|---|
|
#18+
VitalyBТо же вариант, но я упростил задачу. Таких столбцов - неизвестное количество. Но это не беда. Беда в том, что новая DataTable должна бать полностью аналогична исходной. Пример: Я добавляю свою инт колонку и она принимает номер, допустим 7 А колонка "N" имеет номер 3 После удаление "N" и переименования новой колонки в "N" столбец будет иметь номер 6 Это не допустимо. Обращайся к колонке по имени, а не по номеру. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2009, 17:31 |
|
||
|
Поменять тип данных колонки DataTable
|
|||
|---|---|---|---|
|
#18+
HalflingVitalyBТо же вариант, но я упростил задачу. Таких столбцов - неизвестное количество. Но это не беда. Беда в том, что новая DataTable должна бать полностью аналогична исходной. Пример: Я добавляю свою инт колонку и она принимает номер, допустим 7 А колонка "N" имеет номер 3 После удаление "N" и переименования новой колонки в "N" столбец будет иметь номер 6 Это не допустимо. Обращайся к колонке по имени, а не по номеру. Да мне все равно, как обращаться. Выше я писал, что DataTable передается в черный ящик (внешняя DLL), которая создает DBF файл. И порядок столбцов в DBF должен быть как в исходной DataTable. Это не моя прихоть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2009, 17:36 |
|
||
|
Поменять тип данных колонки DataTable
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. LinqHelper ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2009, 17:38 |
|
||
|
Поменять тип данных колонки DataTable
|
|||
|---|---|---|---|
|
#18+
МСУ Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. LinqHelper Отличный вариант, но в 1 посте я писал FW2.0 Там это не катит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2009, 17:39 |
|
||
|
Поменять тип данных колонки DataTable
|
|||
|---|---|---|---|
|
#18+
WYPMAHVitalyBНо меня интересует, есть ли метод (типа Columns.Add) на изменение типа данных? нет, такого метода нет Оказывается есть, нашел вариант dt.Columns["ФФФ"].DataType = System.Type.GetType("System.Int32"); Все отлично, но проблема с Null ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2009, 17:41 |
|
||
|
Поменять тип данных колонки DataTable
|
|||
|---|---|---|---|
|
#18+
VitalyB Отличный вариант, но в 1 посте я писал FW2.0 Там это не катит. Простите, не заметил про FW 2.0 P.S. Либо переходите на FW 3.5 (что, собственно, мешает?), либо создавайте новую колонку в DataTable и в цикле копируйте в нее преобразованное значение поля "N". Всё просто. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2009, 17:41 |
|
||
|
Поменять тип данных колонки DataTable
|
|||
|---|---|---|---|
|
#18+
VitalyBWYPMAHVitalyBНо меня интересует, есть ли метод (типа Columns.Add) на изменение типа данных? нет, такого метода нет Оказывается есть, нашел вариант dt.Columns["ФФФ"].DataType = System.Type.GetType("System.Int32"); Все отлично, но проблема с Null Код: plaintext Модератор: Тема перенесена из форума "C#.NET". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2009, 17:42 |
|
||
|
Поменять тип данных колонки DataTable
|
|||
|---|---|---|---|
|
#18+
МСУ Код: plaintext я о том же, нельзя это сделать на dataTable 'е с данными. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2009, 09:54 |
|
||
|
|

start [/forum/topic.php?fid=17&fpage=71&tid=1351811]: |
0ms |
get settings: |
5ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
19ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
33ms |
get tp. blocked users: |
1ms |
| others: | 195ms |
| total: | 276ms |

| 0 / 0 |
