powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Проблема с преобразованием
8 сообщений из 8, страница 1 из 1
Проблема с преобразованием
    #32717638
Strannik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VS2003, ASP.NET под C#.

Есть переменная типа object, на самом деле - System.Int16. Значение 1. При попытке привести к int (int)data вылетает exception - specified cast is not valid. В чем проблема ??
...
Рейтинг: 0 / 0
Проблема с преобразованием
    #32717900
Фотография Radjaman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
используйте Convert.ToInt16(data)

--------------
вышел из рекурсии. и оп-па!
...
Рейтинг: 0 / 0
Проблема с преобразованием
    #32718615
Strannik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to Radjaman:

Спасибо! Но почему напрямую не получается ?
...
Рейтинг: 0 / 0
Проблема с преобразованием
    #32718751
Фотография profil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да, странно.
а ты уверен, что в object был упакован Int16?
у меня следующий код прокатывает (Framework 1.1)
Код: plaintext
1.
2.
Int16 x = 1;
object obj = x;
Int32 y = (Int32)x;
...
Рейтинг: 0 / 0
Проблема с преобразованием
    #32718905
Ustazz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может это поможет:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/csspec/html/vclrfcsharpspec_4_3_2.asp

Вот так работает:

Код: plaintext
1.
2.
3.
Int16 x =  1 ;
object obj = x;
Int32 y = (Int16)obj;
...
Рейтинг: 0 / 0
Проблема с преобразованием
    #32719095
Strannik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to Ustazz:

Я использую код:

object data = row["column1"];
int x = (int)data;

Причем использую не sqlconnection, а odbcconnection. Фактически я не знаю
размерность столбца из которого беру данные(это может быть 16,32 или 64 бита). Как же преобразовать в общем случае ?
...
Рейтинг: 0 / 0
Проблема с преобразованием
    #32719297
кузя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StrannikКак же преобразовать в общем случае ?можно написать нечто подобное (как Nz в Access + преобразование типа):
Код: plaintext
1.
2.
3.
public static object GetValue(object cellValue, object nullValue, TypeCode toType)
{ 
  return(Convert.ChangeType((!Convert.IsDBNull(cellValue)) ? cellValue : nullValue, toType));
}

нужно быть уверенным, что результирующий тип "вместит" в себя зачение из поля записи
(или использовать try-catch-finally при преобразовании).
...
Рейтинг: 0 / 0
Проблема с преобразованием
    #32720064
Ustazz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Strannikto Ustazz:

Я использую код:

object data = row["column1"];
int x = (int)data;

Причем использую не sqlconnection, а odbcconnection. Фактически я не знаю
размерность столбца из которого беру данные(это может быть 16,32 или 64 бита). Как же преобразовать в общем случае ?

Тогда используй преобразование в Int64 при помощи класса Convert

Код: plaintext
1.
object data = row["column1"];
long x = Convert.ToInt64(data);
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Проблема с преобразованием
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]