首页 / 知识
关于c#:在迭代之前检测IDataReader是否包含某个字段
2023-04-14 18:16:00

Detecting if an IDataReader contains a certain field before iteration本问题已经有最佳答案,请猛点这里访问。
因此,我正在使用IDataReader合并一些业务对象,但是我不知道运行时究竟是哪个字段在阅读器中。 读取器中没有的任何字段在结果对象上都将保留为null。 您如何测试读者是否包含特定字段而不只是将其包装在try / catch中? 这应该可以解决问题:
或(在C#中)
:o)
您还可以使用 http://support.microsoft.com/kb/310107
我使用过的最好的解决方案是这样做的:
尝试通过reader [" ColumnName"]访问它并检查null或DBNull将引发异常。 尽管我不同意这种方法(我认为在访问数据时应该先了解形状),但我知道也有例外。 您总是可以使用读取器加载数据表,然后对其进行遍历。然后,您可以检查该列是否存在。这会降低性能,但是您不需要try / catch块(因此也许可以满足您的需求)。 您不能只测试reader [" field"]是否为null或DBNull,因为如果列不在阅读器中,则会抛出IndexOutOfRangeException。 我在映射层中使用的用于创建域对象的代码以及使用该映射层的存储过程可能具有不同的列名,如下所示;您可以对其进行修改,以便在找不到该列时不引发异常,并返回default(t)或null。 我知道这不是最优雅或最佳的解决方案(实际上,如果可以避免,那么应该这样做),但是,旧式存储过程或Sql查询可能需要解决方法。
|
最新内容
相关内容
linux合并保存命令行?
linux合并保存命令行?,文件,地址,代码,工作,命令,两个,内容,目录,方法,文件夹,linux中怎么将文件合并1、方法一:使用cat命令从文件中读入两个文linux下抓取字段命令?
linux下抓取字段命令?,数据,系统,命令,单位,报告,工具,字符串,文件,范本,样式,Linux系统怎么使用awk命令处理文字数据?其中command是真正的awklinux检测硬件的命令?
linux检测硬件的命令?,信息,系统,检测,工具,第一,数据,设备,分析,实时,百度,如何查看linux系统CPU信息cpu信息记录在/proc/cpuinfo中。linux怎linux提取字段串命令?
linux提取字段串命令?,数字,字符串,状态,工具,命令,文件,范本,样式,正则,字段,linux如何获取两个字符串之间的内容?1、在 Linux 中,您可以使用linux命令超时检测?
linux命令超时检测?,时间,网络,检测,系统,地址,状态,电脑,代码,软件,设备,linux定时器超时次数过多之后,再也收不到信号当时钟脉冲到来时,将目linux文件夹合并命令?
linux文件夹合并命令?,文件,对比,第一,下来,命令,文件夹,两个,字段,内容,数组,在linux下我有两个文件夹w1,w2,怎样把它们合并到一个文件夹1、linux下端口检测命令?
linux下端口检测命令?,检测,系统,状态,工具,情况,端口,网络,服务,灵活,信息,linux怎么看端口是否开放可以用nmap工具进行检测端口是否开放。1:n使用linux命令合并?
使用linux命令合并?,文件,代码,工作,命令,内容,两个,目录,方法,麻烦事,发现,linux切分文件命令(split)和合并文件1、[root@localhost databaselinux分区合并命令行?
linux分区合并命令行?,系统,管理,地址,电脑,名字,工具,数据,工作,分区,地方,请问,linux如何合并分区?可以试试Acronis Disk,这个软件在windowslinux检测摄像头命令?
linux检测摄像头命令?,系统,工具,情况,实时,信息,状态,平均,设备,检测,数据,Linux怎么使用nmon监控性能,分析系统性能数据nmon是Nigel’s Monilinux检测进程命令?
linux检测进程命令?,系统,服务,地址,状态,信息,检测,进程,命令,第一,软件,linux查看进程命令首先打开xshell软件,连接上linux服务器,使用指令pslinux检测程序命令?
linux检测程序命令?,地址,系统,工作,检测,命令,情况,信息,报告,状态,软件,linux查看是否有某个运行的进程命令1、linux 下查看进程可以使用的