2014-12-26 3 views
0

У меня есть следующий код, где я преобразовывать Int в строку в списке, но визуально студии не принимает, когда я пытаюсь преобразовать Int в строкуПреобразование INT в список строки в C#

Не может неявно преобразовать тип 'string' to 'int'

listOfUsers.Add(new User 
{ 
    Id = myReader["Id"].ToString(), 
    Name = myReader["Name"].ToString(), 
    Coordinate = myReader["Coordinate"].ToString() 
}); 

Что мне не хватает?

+0

Свойство Id, определенное в User, является int, но вы назначаете ему строку? –

+0

Начните с показания запроса, пожалуйста. Предположительно, у вас нет идентификатора столбца в вашем устройстве чтения данных. –

ответ

3

ID должно быть Int тип, поэтому вам необходимо предоставить скрытые данные соответствующему типу.

Здесь вам нужно преобразовать значение в тип int. Вы можете использовать Convert.ToInt32

Преобразует указанное строковое представление числа в эквивалентное 32-разрядное целое число со знаком.

Пример:

Id = Convert.ToInt32(myReader["Id"]) 

Примечание: Не забудьте проверить myReader["Id"] не DbValue.null

+0

когда я делаю это, я получаю ошибку исключения. Необработанное исключение типа «System.IndexOutOfRangeException» произошло в System.Data.dll – Amehiny

+0

Я добавил свой полный код к вопросу – Amehiny

+0

Проблема была в моей координате. Большое спасибо – Amehiny

2

Вы код должен быть, предполагая, что Id является внутр.

listOfUsers.Add(new User 
        { 
         Id =Convert.ToInt32(myReader["Id"]), 
         Name = myReader["Name"].ToString(), 
         Coordinate = myReader["Coordinate"].ToString() 
        }); 
+0

когда я делаю это, я получаю ошибку исключения. Необработанное исключение типа «System.IndexOutOfRangeException» произошло в System.Data.dll – Amehiny

1

Пробуйте этот код.

listOfUsers.Add(new User 
        { 
         Id =int.Parse(myReader["Id"].ToString()), 
         Name = myReader["Name"].ToString(), 
         Coordinate = myReader["Coordinate"].ToString() 
        }); 
Смежные вопросы