Ошибка CS0266: невозможно неявное преобразование типа «объект» в «int» - PullRequest
4 голосов
/ 17 января 2012

ошибка CS0266: невозможно неявное преобразование типа «объект» в «int».Существует явное преобразование (вам не хватает приведения?)

int dd= 6000;
sqlCmdDefaultTime = new SqlCommand("myQuery", sqlCon);
sqlDefaultTime = sqlCmdDefaultTime.ExecuteReader();
while (sqlDefaultTime.Read())
{
      dd= sqlDefaultTime[1];
}

как я могу разыграть

Ответы [ 4 ]

16 голосов
/ 17 января 2012

Простое приведение к int:

dd = (int)sqlDefaultTime[1];
1 голос
/ 17 января 2012

Вместо индексатора попробуйте использовать методы GetXXX SqlDataReader:

dd = sqlDefaultTime.GetInt32(1);

Больше методов GetXXX здесь: http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqldatareader.aspx

1 голос
/ 17 января 2012

Попробуйте это ...

int.TryParse(sqlDefaultTime[1].ToString(), out dd);

в случае успешного анализа dd теперь будет новым значением.

Если, конечно, объект уже не является целым, вы можете просто разыграть его ...

dd = (int)sqlDefaultTime[1];
0 голосов
/ 17 января 2012

Integer.parseInt ();

некоторые другие, такие как TryParse и TryParseExact, предоставляют больше функциональности и контроля.

dd= Integer.parseInt(sqlDefaultTime[1]); 

должен сделать это, при условии, что вы можете гарантировать, что возвращаемое значение всегда будет int.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...