我正在尝试向数据集添加标量查询。查询非常简单,它只是在几列中添加一些十进制值并返回它们。我100%确信只返回一行和一列,并且它是十进制类型(SQL money类型)。问题是由于某种原因,生成的方法(在.designer.cs代码文件中)返回一个object类型的值,当它应该是十进制时。奇怪的是,有另一个标量查询具有完全相同的SQL,但是它应该返回十进制数。
数据集设计器如何确定数据类型,如何告诉它返回小数?
答案 0 :(得分:1)
而不是使用标量存储过程,而是使用标量函数。数据集设计器将正确检测标量函数的数据类型。如果在查询期间更改数据,则只需使用标量存储过程。标量函数是只读的。您还可以非常方便地将函数作为查询拖到数据集中,而不必通过向导。
如果你坚持使用存储过程或常规查询,你总是可以像这样投射你的结果(在VB中)......
Dim ta As New DataSet1TableAdapters.QueriesTableAdapter
Dim result As Decimal = DirectCast(ta.StoredProcedure1, Decimal)
或使用Option Infer On
Dim resultInfer = DirectCast(ta.StoredProcedure1, Decimal)
答案 1 :(得分:0)
首先使用dataadapters将dataset.tables(“”)的模式填充到“schematype.source”。例如:sqladp.fillschema(ds.tables(0),schematype.source)
然后填充数据集 sqladp.fill(ds.tables(0))
现在我认为它应该返回源表的数据类型。
你在寻找吗?