Не удается получить SQL-запрос для сохранения результатов в переменных

1

Привет, мне нужно вставить результат I01 в переменную. То же самое для I02 и I03\Я использую С#.

Я могу поместить результат FName и LName в переменную с использованием Data Reader, но я не могу понять, как читать запросы внутри().

//SELECT STATEMENT IN A STRING

SELECT Distinct FName, LName, 
I01 = (SELECT INAME FROM tbl_interests WHERE IID = FK_Interest_01), 
I02 = (SELECT INAME FROM tbl_interests WHERE IID = FK_Interest_02), 
I03 = (SELECT INAME FROM tbl_interests WHERE IID = FK_Interest_03) 
FROM tbl_students

//SQL CONNECTION HERE

while (dr.Read())
{
    int interest 01 = (Int16)dr["I01"];
    int interest 01 = (Int16)dr["I01"];
    int interest 01 = (Int16)dr["I01"];
}

Ошибка, которую я получаю: Сведения об исключении: System.InvalidCastException: Указанный приведение недействительно.

Однако они возвращают целые числа

Любая помощь будет большой благодарностью.

Теги:
casting
scalar

1 ответ

1
Лучший ответ

* Что это за синтаксис?

int interest 01 = (Int16)dr["I01"]; ?

Почини это.

Также

Int16 не является целым числом (32)

  • int и int32 - одно и то же (32-разрядное целое)
  • int16 - короткий int (2 байта или 16 бит)

Я верю, что вы возвращаетесь из SQL типа INT.

Поэтому вы должны использовать для int (нет необходимости int32)

  • 0
    Только что попробовал, но дает ту же ошибку
  • 0
    какой тип INAME?
Показать ещё 15 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню