use*_*042 11 c# mysql linq asp.net
我在一个C#ASP.NET项目上.
我有一个带有userid字段类型的MySQL表int.
现在我想使用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;
}
Run Code Online (Sandbox Code Playgroud)
但它System.InvalidCastException: Specified cast is not valid.显示count = (from x in mytable.AsEnumerable() where x.Field<Int32>("userid") == usercode select x).Count();在红色高亮区域显示错误.
我不知道我在这里做错了什么.请帮忙.
Jar*_*Par 10
最可能的原因InvalidCastException是x.Field<Int32>("userid")线.如果数据的实际类型与传递的类型不匹配,则Field<T>扩展方法将抛出.因此,如果不是这将抛出.InvalidCastExceptionField<T>useridInt32
编辑
根据您的评论,userid实际上是UInt32不是Int32.这就是导致问题的原因.尝试使用以下内容,它应该工作
x.Field<UInt32>("userid")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
56980 次 |
| 最近记录: |