Я нахожусь в проекте C# ASP.NET.System.InvalidCastException: Указанное приведение недействительно. Ошибка
У меня есть таблица MySQL с полем userid типа int
.
Теперь я хочу получить количество строк, где значение userid равно определенному значению с использованием LINQ.
Для достижения этой цели, я написал следующий метод:
public int getCount(int usercode) {
int count = 0;
DataTable mytable = getAllRowsAndReturnAsDataTable(); // assigning a DataTable value to mytable.
if (mytable.Rows.Count > 0) {
count = (from x in mytable.AsEnumerable() where x.Field<Int32>("userid") == usercode select x).Count();
}
return count;
}
но он показывает ошибку System.InvalidCastException: Specified cast is not valid.
показывая count = (from x in mytable.AsEnumerable() where x.Field<Int32>("userid") == usercode select x).Count();
в красной области выделения.
Я не знаю, что я сделал неправильно здесь. Пожалуйста помоги.
'mysql> desc vticketuser; + -------------- + ------------------ + ------ + ----- + - -------- + ------- + | Поле | Тип | Null | Ключ | По умолчанию | Экстра | + -------------- + ------------------ + ------ + ----- + - -------- + ------- + | Поиск | int (10) unsigned | НЕТ | | 0 | | | userid | int (10) unsigned | НЕТ | | NULL | | ' это поле – user2168042
@ user2168042 Вы смешиваете определение БД с тем, что это значение, когда он управляется кодом. Попробуйте посмотреть на исходное значение '' userid ''в коде, вызовите' .GetType' и посмотрите, какой тип он создается как – JaredPar
. Я не знаю, что я делаю это правильно .. но я пробовал вот так ' string ty = t.Rows [0] ["userid"]. GetType(). ToString(); ' и он говорит« System.UInt32 » – user2168042