我尝试使用username
使用DataTable
使用this示例从UserID
LINQ
检索//Example 1:
var user = (from dr in users.AsEnumerable()
where dr.Field<int>("UserID") == 2
select dr).First();
//Example 2:
string user = (from dr in users.AsEnumerable()
where dr.Field<int>("UserID") == 3
select dr.Field<string>("UserName")).First();
。
where clause
以上两个例子导致了这个强制转换错误:
System.InvalidCastException:&#39;指定的演员表无效。&#39;
但是,如果我的string
按int
而不是string result = (from row in users.AsEnumerable()
where row.Field<string>("UserName") == "TUser"
select row.Field<string>("UserName")).First();
进行搜索,则查询会有效。
.json
如何通过userid检索单个用户名?
更新:
不确定它是否相关,但是通过使用JSON.NET
.json
文件来填充数据表
示例DataTable users = JsonConvert.DeserializeObject<DataTable>(File.ReadAllText(userPath));
[{ &#34; UserID&#34;:2, &#34;用户名&#34;:&#34;用户&#34;, &#34; StatusID&#34;:1, &#34; CreateDate&#34;:&#34; 2018-04-25T14:02:00&#34;, &#34; CreateBy&#34;:&#34; Admin&#34;, &#34; ID&#34;:&#34; 9855626A-FEF1-4936-9EF6-DD896F80AE35&#34; },{ &#34; UserID&#34;:3, &#34; UserName&#34;:&#34; TUser&#34;, &#34; StatusID&#34;:1, &#34; CreateDate&#34;:&#34; 2018-04-25T14:02:00&#34;, &#34; CreateBy&#34;:&#34; Admin&#34;, &#34; ID&#34;:&#34; 928D6099-0665-4FC8-BE4C-8E145E56E8BF&#34; } ]
填充数据表:
test
答案 0 :(得分:3)
您需要为UserID
列
在数据库中检查您的UserID列类型并使用下表
BigInt -> long
int -> int
SmallInt -> short
varchar/nvarchar -> string