我在一個C#ASP.NET項目。System.InvalidCastException:指定的轉換無效。錯誤
我有一個類型爲int
的userid字段的MySQL表。
現在我想要得到使用LINQ的userid值等於某個值的行數。
要做到這一點,我寫了下面的方法:
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;
}
但它顯示出紅色高亮區域count = (from x in mytable.AsEnumerable() where x.Field<Int32>("userid") == usercode select x).Count();
錯誤System.InvalidCastException: Specified cast is not valid.
。
我不知道我在這裏做錯了什麼。請幫忙。
'mysql> desc vticketuser; + -------------- + ------------------ + ------ + ----- + - -------- + ------- + |字段|類型|空| Key |默認|額外| + -------------- + ------------------ + ------ + ----- + - -------- + ------- + | idticket | int(10)unsigned | NO | | 0 | | |用戶ID | int(10)unsigned | NO | | NULL | | ' 這是字段 – user2168042
@ user2168042您將數據庫定義與託管代碼時的值混合在一起。嘗試查看代碼中原始的''userid''值,調用'.GetType'並查看它創建的類型爲 – JaredPar
我不知道我是否正確地做它..但我試過像這樣 ' string ty = t.Rows [0] [「userid」]。GetType()。ToString();' 它說「System.UInt32」 – user2168042