2010-04-14 32 views
3

我正在嘗試將標量查詢添加到數據集。查詢非常簡單,它只是在幾列中加上一些小數值並返回。我100%確信只返回一行和一列,並且它是十進制類型(SQL money類型)。問題在於,由於某種原因,生成的方法(在.designer.cs代碼文件中)返回值類型爲object的時候,它應該是十進制的。奇怪的是,還有另一個標量查詢具有完全相同的SQL,但它應該像返回小數。數據集設計者如何確定標量查詢的返回類型?

數據集設計者如何確定數據類型,以及如何告訴它返回小數?

回答

1

而不是使用標量存儲過程,而是使用標量函數。數據集設計器將正確檢測標量函數的數據類型。如果在查詢過程中對數據進行更改,則只需使用標量存儲過程。標量函數是隻讀的。您也可以非常方便地將函數作爲查詢拖動到數據集中,而不必通過嚮導。

如果你堅持使用存儲過程或常規查詢,您可以隨時施放像這樣(在VB)...

Dim ta As New DataSet1TableAdapters.QueriesTableAdapter 
    Dim result As Decimal = DirectCast(ta.StoredProcedure1, Decimal) 

或使用選項推斷你的結果在

Dim resultInfer = DirectCast(ta.StoredProcedure1, Decimal) 
+0

拖動該功能是不錯的提示。當我設置標量輸出時,放棄它會產生NonQuery函數。出於某種原因,在我的情況下,標量設置總是返回null,而NonQuery像預期的那樣工作。 – majkinetor 2010-07-01 08:21:17

0

首先使用數據適配器將dataset.tables(「」)的模式填充到「schematype.source」。例如:sqladp.fillschema(ds.tables(0),schematype.source)

然後填充數據集 sqladp.fill(ds.tables(0))

現在我認爲它應該返回的數據類型源表。

是你在找什麼?

相關問題