我有一个只返回一行(总是)的查询,我想将此行转换为类对象(比如说obi)
我有一种感觉,使用数据表来进行这种查询是非常的 但我真的不知道使用哪个其他数据对象
数据阅读器?
有没有办法将sql命令执行到数据行?
答案 0 :(得分:2)
DataReader是这里的最佳选择 - 对于单行,DataAdapters和DataSet可能过度,但是,如果性能不是很关键,那么保持简单并不是一件坏事。您无需从DataReader转发 - > DataRow - >你的对象,只需读取DataReader的值就可以了。
答案 1 :(得分:0)
使用datareader可以查询各个字段。如果您希望将行作为单个对象,我相信DataTable / DataRowView系列对象实际上是可行的方法。
答案 2 :(得分:0)
您可能会认真考虑查看Linq-to-Sql或Linq-to-Entities。
这些框架的吸引力在于它们提供了将数据库数据自动序列化为对象,抽象出许多连接管理的普通细节,并通过提供强类型属性提供更好的编译时支持,您可以在不使用字符串的情况下使用这些属性键或列序号。
使用Linq时,检索单行与检索多行之间的区别通常只涉及在查询中附加.Single()
或.First()
。
无论如何,如果您已经使用或愿意学习其中一个框架,您可能会发现数据访问代码的大量和难度大大降低。
对于DataReader与DataSet / DataTable,分配和填充数据表需要更多周期是正确的。但是,我非常怀疑除非创建极大量的数据库调用,否则你会发现差异。
如果有用,下面是使用数据读取器和数据集进行数据访问的文档示例。