DataTable.Load(reader)注意事项

对于在C#中操作数据库查询,这样的代码很常见:

csharp 复制代码
using var cmd = ExecuteCommand(sql);
using var reader = cmd.ExecuteReader();
DataTable dt = new DataTable();
dt.Load(reader);
...

一般的查询是没问题的,但是如果涉及主键列的查询,这个时候得注意了,如果select 字段有主键字段,并且主键列会存在多行相同值,如:

这时执行完Load你会发现dt只有1行...

解决办法就是不要使用Load,而是使用

csharp 复制代码
while(reader.Read())
...

一行行取出。

相关推荐
百***58841 小时前
深入浅出 SQLSugar:快速掌握高效 .NET ORM 框架
.net
xdpcxq10291 小时前
使用.NET 8+ 与飞书API构建同步服务
数据库·.net·飞书
꧁༺℘₨风、凌๓༻꧂4 小时前
C# MES .NET Framework Winform 单元测试
单元测试·c#·.net
裤裤兔5 小时前
利用VBA批处理word 文档,使用宏对docx文件内容进行批量替换
c#·word·.net··vba·office·宏操作
mudtools8 小时前
使用.NET 8+ 与飞书API构建组织架构同步服务
架构·.net·飞书
唐青枫16 小时前
C#.NET 集合表达式详解:新时代的集合初始化方式
c#·.net
hez20101 天前
TypedSql:在 C# 类型系统上实现一个 SQL 查询引擎
c#·.net·.net core·compiler
追逐时光者1 天前
精选 5 款 .NET 开源、实用的商城系统(Shop),快速商城二开利器!
后端·.net