c# - 从数据表中检索数据
问题描述
我正在尝试使用此示例从username
aDataTable
中检索 a 。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();
上述两个示例导致此转换错误:
System.InvalidCastException:“指定的演员表无效。”
但是,如果我的where clause
搜索string
不是int
.
string result = (from row in users.AsEnumerable()
where row.Field<string>("UserName") == "TUser"
select row.Field<string>("UserName")).First();
如何通过用户 ID 检索单个用户名?
更新:
不确定它是否相关,但是通过使用反序列化.json
文件来填充数据表JSON.NET
一个样品.json
[{“UserID”:2,“UserName”:“User”,“StatusID”:1,“CreateDate”:“2018-04-25T14:02:00”,“CreateBy”:“Admin”,“ID”: “9855626A-FEF1-4936-9EF6-DD896F80AE35”},{“UserID”:3,“UserName”:“TUser”,“StatusID”:1,“CreateDate”:“2018-04-25T14:02:00”, “创建者”:“管理员”,“ID”:“928D6099-0665-4FC8-BE4C-8E145E56E8BF”}]
并填充数据表:
DataTable users = JsonConvert.DeserializeObject<DataTable>(File.ReadAllText(userPath));
解决方案
您需要为UserID
列使用正确的数据类型
检查您的用户 ID 在 DB 中的列类型并使用下表
BigInt -> long
int -> int
SmallInt -> short
varchar/nvarchar -> string
推荐阅读
- ruby - 如何在 Capybara/Ruby 中存储元素中的值?
- python - 使用 OpenCV 读取图像
- apache-spark - PySpark(在 Azure Synapse 上) - 将每条记录转储为单个 Blob 文件
- php - 如何通过“get_the_post_thumbnail”功能从wordpress获取动态图片标题?
- php - Woocommerce 自定义主题结帐页面未显示
- javascript - 如何获取特定点击的卡片 ID 并将该 ID 传递给 vue.js 中的后端 API?
- multithreading - 使用 java.util.concurrent 和 cat.effect 自定义同步
- docker - 为什么几个 NuGet 包将 docker 大小增加了千兆字节?
- javascript - 如何将 pdftron 注释添加到当前鼠标位置
- c# - 如何在 Xamarin.ios 中实现日历日期选择器而不是默认日期选择器