Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 我应该使用哪个数据对象_C#_Database - Fatal编程技术网

C# 我应该使用哪个数据对象

C# 我应该使用哪个数据对象,c#,database,C#,Database,我有一个只返回一行(总是)的查询,我想将这一行转换为类对象(比如obi) 我有一种感觉,使用数据表进行这种查询是非常困难的 但是我真的不知道该使用哪个数据对象 数据读取器 有没有一种方法可以对数据行执行sql命令?DataReader是这里的最佳选择-数据适配器和数据集对于单个行来说可能会有过多的杀伤力,尽管如此,如果性能不重要,那么保持简单并不是一件坏事。您不需要从DataReader->DataRow->您的对象,只需读取DataReader的值就可以了。DataReader允许您查询单个字

我有一个只返回一行(总是)的查询,我想将这一行转换为类对象(比如obi)

我有一种感觉,使用数据表进行这种查询是非常困难的 但是我真的不知道该使用哪个数据对象

数据读取器


有没有一种方法可以对数据行执行sql命令?

DataReader是这里的最佳选择-数据适配器和数据集对于单个行来说可能会有过多的杀伤力,尽管如此,如果性能不重要,那么保持简单并不是一件坏事。您不需要从DataReader->DataRow->您的对象,只需读取DataReader的值就可以了。

DataReader允许您查询单个字段。如果你想把行作为一个单独的对象,我相信DATABATE/DATAROWVIEW的对象家族实际上是要走的路。

< P>你可能会认真考虑看看或./P> 这些框架的吸引力在于,它们可以将数据库数据自动序列化为对象,抽象掉连接管理的许多常见细节,并通过提供无需字符串键或列序号即可使用的强类型属性提供更好的编译时支持

使用Linq时,检索单行与检索多行之间的区别通常只涉及在查询中附加
.single()
.First()

无论如何,如果您已经使用或愿意学习其中一个框架,您可能会看到数据访问代码的数量和难度大大降低

关于DataReader与DataSet/DataTable,分配和填充数据表需要更多的周期是正确的;但是,我非常怀疑您是否会注意到这种差异,除非创建了大量的数据库调用

如果有帮助,下面是使用数据读取器和数据集进行数据访问的文档示例


查看上的示例-注意,从读取器获取值时,您也可以使用字段名而不是列序号,例如,dr(“MyField”)很好。arrrr我知道我将得到两个不同的答案。。。选择哪一个?请检查我对你的问题的评论。如果您不知何故需要DataRow对象来创建对象,这就是问题所在,我只有一个DataRow。。。。如果我需要或不需要datarow。。这是问题的一部分:-)我认为这基本上是一个方便的问题。如果您可以详细说明“将此行转换为类对象”的含义,那么从两种可能性中选择一种可能会更容易