none
LINQ 數值計算 RRS feed

  • 問題

  • 目前小弟運用LINQ的方式建立資料連結
    目前可以搜索到指定資料,但是我想要把資料中的某個數值拿來運算,該怎麼寫呢?
    例:
    name, height, weight
    小明, 180, 80
    曉華, 150, 50 

    Private db As New DataClasses1DataContext
        Private tableView As BindingListCollectionView
    
        Private Sub Window_Loaded(sender As Object, e As RoutedEventArgs)
            Dim custsInCA = From c In db.basetext
                            Where c.name = "小明"
                            Select c.height
    
             textblack.text = custsInCA
    End Sub

    寫成這樣,還是沒辦法執行
    textblack.text = custsInCA錯誤,內容是: 無法將類型 'System.Data.Linq.DataQuery`1[System.Nullable`1[System.Int32]]' 的物件轉換為類型 'System.String'。

    • 已移動 FlyingBread 2016年8月23日 上午 07:02 移動文章
    2016年8月23日 上午 05:40

解答

  • 改成這樣試看看:

    Dim custsInCA = (From c In db.basetext
                            Where c.name = "小明"
                            Select c).FirstOrDefault().height
    
             textblack.text = Convert.ToString(custsInCA)

    • 已標示為解答 LeeEshow 2016年9月21日 上午 08:11
    2016年8月24日 上午 04:08

所有回覆

  • 你的 c.height 是 int,進行轉型一下(.toString()) 再輸出。

    理直氣和,切記。

    個人

    2016年8月23日 上午 08:26
  • 回傳的是 IQueryable<<Nullable<System.Int32>> 而不是 Nullable<System.Int32>


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    2016年8月23日 下午 11:17
  • 改成這樣試看看:

    Dim custsInCA = (From c In db.basetext
                            Where c.name = "小明"
                            Select c).FirstOrDefault().height
    
             textblack.text = Convert.ToString(custsInCA)

    • 已標示為解答 LeeEshow 2016年9月21日 上午 08:11
    2016年8月24日 上午 04:08
  • 延續 Bill 前輩給的釣竿:
    請試試看:

            Dim custsInCA = From c In db.basetext
                            Where c.name = "小明"
                            Select c.height
    
            If custsInCA.Count >= 1 Then
                textblack.Text = custsInCA(0)
            Else
                textblack.Text = "沒找到"
            End If


    Ader

    2016年8月24日 上午 04:47