数据集设计器如何确定标量查询的返回类型?

时间:2010-04-14 17:31:46

标签: ado.net dataset

我正在尝试向数据集添加标量查询。查询非常简单,它只是在几列中添加一些十进制值并返回它们。我100%确信只返回一行和一列,并且它是十进制类型(SQL money类型)。问题是由于某种原因,生成的方法(在.designer.cs代码文件中)返回一个object类型的值,当它应该是十进制时。奇怪的是,有另一个标量查询具有完全相同的SQL,但是它应该返回十进制数。

数据集设计器如何确定数据类型,如何告诉它返回小数?

2 个答案:

答案 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))

现在我认为它应该返回源表的数据类型。

你在寻找吗?