2014-10-10 2 views
0

Я озадачен тем, что делать в C#, чтобы сделать запрос к T-SQL, который возвращает tinyint.Что такое TSQL TinyInt в C#?

Использование SqlDataReader ...

int Precision = 0; 

SqlDataReader reader = myCommand.ExecuteReader(); 

if (reader.Read()) 
{ 
    Precision = reader.GetInt16(0); 
} 

Я получаю InvalidCastException, когда я использую GetInt16, и это наименьшее целое число, по-видимому, литая доступны. В том же коде я успешно сбрасывал smallint в int16.

Что такое Get.... Я использую для tinyint?

Edited добавить:

Ответ, который впоследствии был удален сказал использовать GetByte. Я сделал, и это сработало.

+2

Я знал, что это уже нужно было ответить, но поиск SO не дал вопроса, который @CodeCaster указал как предыдущий вопрос, - и сам вопрос тоже не был. Я благодарю всех, кто ответил. – Cyberherbalist

ответ

2

Как указано в документации this, при сопоставлении с SQL на CLR short.

+0

В документации указано, что карты TINYINT соответствуют System.Int16. Но код выше не работает. С другой стороны, GetByte * работает *. – Cyberherbalist

+1

Хорошо, в документации [this] (http://msdn.microsoft.com/en-us/library/cc716729.aspx) указано, что 'tinyint' отображает' byte', что более подходит в вашем случае, потому что AOD.NET на сцене. (вышеупомянутый документ связан с LINQ2SQL). –

+0

Тогда все в порядке. Благодаря! У дублированного вопроса есть и приятная таблица. – Cyberherbalist