2010-08-15 83 views
0

我有只返回一行(总是)查询,我想此行转换为类对象(可以说OBI)该数据对象我应该使用

我有使用数据表这样的感觉类型的查询是很多 但我真的不知道要使用哪个其他数据对象

数据读取器?

有没有办法执行sql命令到数据行?

+0

我认为这基本上是一个方便的问题。如果你可以更详细地说明“将此行转换为类对象”的意思,那么选择这两种可能性可能更容易 – Nicolas78 2010-08-16 14:12:40

回答

2

DataReader在这里是最好的选择 - DataAdapters和DataSet可能对单行有点矫枉过正,尽管如此说,如果性能不重要,那么保持简单并不是坏事。您不需要从DataReader - > DataRow - >您的对象,只需读取DataReader的值,即可完成。

+0

你能告诉我怎么做吗? – maggie 2010-08-15 17:59:28

+0

请查看http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqldatareader.aspx上的示例 - 请注意,您可以使用字段名而不是列顺序读者,例如博士(“MyField”)很好。 – 2010-08-15 18:06:06

0

datareader让您查询单个字段。如果你想把这行作为一个单独的对象,我相信DataTable/DataRowView对象系列实际上是一条可行的路。

+0

arrrr我知道我会得到2个不同的答案......哪一个选择? – maggie 2010-08-16 13:17:30

+0

请检查我对你的问题的评论。如果你不知何故需要DataRow对象来创建对象 - 这就是问题imo – Nicolas78 2010-08-16 14:13:57

+0

我只有一个datarow ....如果我需要datarow或不..这是问题的一部分:-) – maggie 2010-08-17 12:26:32

0

你可能会认真考虑看看Linq-to-SqlLinq-to-Entities

这些框架的吸引力在于它们提供了将数据库数据自动序列化到对象中,抽象出连接管理的许多世俗细节,并通过提供强类型属性提供更好的编译时支持字符串键或列序号。

使用Linq时,检索单个行与检索多个行之间的区别通常只涉及将.Single().First()添加到您的查询中。无论如何,如果您已经在使用或愿意学习这些框架之一,您可能会看到数据访问代码的体积和难度大幅降低。

对于DataReader与DataSet/DataTable,分配和填充数据表需要更多的周期是正确的;但是,我非常怀疑,除非创建数量极高的数据库调用,否则您会注意到其中的差异。

如果有帮助,这里是使用数据读取器和数据集的数据访问的文档示例。