2016-03-03 46 views
-2

我對Visual Studio基礎知識非常陌生。我正在開展一個小項目。我有一個GirdView來顯示課程列表學生也可以查看它的價格。我正在嘗試使用DropDownList來確定課程表「價格」列下的貨幣輸出。在VB.net中投射查詢

我都試過了, Convert.ToDouble(查詢)和ToDecimal(查詢)在課程表

我仍然得到「輸入字符串格式不正確」的錯誤

我的「價格」欄是十進制的類型(18,2)

有人可以簡單地向我解釋我做錯了什麼,請幫忙。

Protected Sub DropDownList2_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DropDownList2.SelectedIndexChanged 
     Dim cc As CurrencyConverter = New CurrencyConverter 

     sqlCon.Open() 
     Dim query As String 
     query = "SELECT Price from dbo.Course" 

     If DropDownList2.SelectedValue.Equals("USD") Then 
      query = cc.USDtoSGD(query) 
     Else 
      query = cc.SGDtoUSD(query) 
     End If 
     sqlCon.Close() 
    End Sub 

我的web服務代碼,

<WebMethod()> 
Public Function SGDtoUSD(SGD As Double) As Double 
    Return Math.Round((SGD * 0.72), 2) 
End Function 

<WebMethod()> 
Public Function USDtoSGD(USD As Double) As Double 
    Return Math.Round((USD * 1.39), 2) 
End Function 
+0

變量Quary是一個字符串「SELECT Price from dbo.Course」。並且您正在傳遞預期翻倍的變量USDtoSGD函數。 –

+0

USDtoSGD方法是否需要一個SQL語句並將其轉換爲貨幣?我懷疑不是。您必須執行查詢並將其結果提供給您的貨幣轉換器。 –

+0

你需要做一些[橡皮鴨調試](https://en.wikipedia.org/wiki/Rubber_duck_debugging) – Plutonix

回答

0

你試圖查詢,這是串,並轉換「選擇價格dbo.Course」,爲雙。這顯然是不可能的。

你想要做的是執行你的查詢,並將結果存儲在一個變量中,並將該結果變量傳遞給需要double的函數。

大概是你想要轉換成某種貨幣的價格,而不是字符串「SELECT Price from dbo.Course」。

查詢不會自動變爲結果。他們必須被明確執行,並且他們的結果必須被明確地存儲。