我正在尝试向数据集添加标量查询。该查询非常简单明了,它只是将一些十进制值加到几列中并返回它们。我有100%的信心,只返回一行和一列,并且它是十进制类型(SQL货币类型)。问题是由于某种原因,生成的方法(在.designer.cs代码文件中)将返回类型为object的值,该值应为十进制。奇怪的是,还有另一个标量查询具有与SQL完全相同的查询,但返回的十进制数却应该是这样。
数据集设计人员如何确定数据类型,如何告诉它返回十进制?
最佳答案
不要使用标量存储过程,而应使用标量函数。数据集设计人员将正确检测标量函数的数据类型。仅在查询期间对数据进行更改时才需要使用标量存储过程。标量函数是只读的。您也可以非常方便地将该函数作为查询拖到数据集中,而不必通过向导。
如果您坚持使用存储过程或常规查询,则始终可以像这样(在VB中)强制转换结果...
Dim ta As New DataSet1TableAdapters.QueriesTableAdapter
Dim result As Decimal = DirectCast(ta.StoredProcedure1, Decimal)
或启用选项推断
Dim resultInfer = DirectCast(ta.StoredProcedure1, Decimal)
关于ado.net - 数据集设计人员如何确定标量查询的返回类型?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2639603/