台灣最大程式設計社群網站
線上人數
380
 
會員總數:245397
討論主題:189185
歡迎您免費加入會員
討論區列表 >> VB.NET >> 不太懂為什麼 一樣的語法 DataRow()的成員 會有所差異
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
不太懂為什麼 一樣的語法 DataRow()的成員 會有所差異
價值 : 100 QP  點閱數:204 回應數:10

樓主

李濟宇
門外漢
0 2
103 16
發送站內信

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
2 'TODO: 這行程式碼會將資料載入 '產品DataSet.書籍' 資料表。您可以視需要進行移動或移除。
3
4 Me.書籍TableAdapter.Fill(Me.產品DataSet.書籍)
5 Dim dtA, dtb As DataTable
6 dtA = Me.產品DataSet.書籍
7 dtb = Me.產品DataSet.書籍.Select("訂價>500").Take(3).CopyToDataTable
8 MsgBox(dtA.Rows.Count)
9 MsgBox(dtb.Rows.Count)
10
11 書籍DataGridView.DataSource = dtB
12     DataGridView1.DataSource = dtA
13
14 End Sub


以上程式可以執行 在書籍datatable 中 篩選條件後 選擇幾個顯示出來

但在以下這邊 明明就是一樣的語法

但是以上程式 跟 第一個程式 都是一模一樣的語法
卻出現錯誤 " take 不是 DataRow() 的成員 "這句話

不太懂這是為什麼??

搜尋相關Tags的文章: [ 擴充功能不同 ] ,
本篇文章發表於2019-12-05 11:20
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
不錯的參考

roar
檢舉此回應
Take(3).CopyToDataTable 你的take及copytodatatable如果是其成員,第一個字會變大寫。
本篇文章回覆於2019-12-05 13:33
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

李濟宇
檢舉此回應

我剛剛 決定 重開新專案試試看 結果就可以抓到 take了
但是在開之前的那個檔案 依舊抓不到take 實在不知道原因在哪
本篇文章回覆於2019-12-05 14:02
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

roar
檢舉此回應
下列全部是程式碼嗎?
dta= Me.Ds系列DataSet.篩選.Select("插入損失>30").take(3).copytodatatable時
本篇文章回覆於2019-12-05 14:16
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
回應

P陳
檢舉此回應
To Roar:
樓主之前有問另一個問題,A專案共有二個DataSet,第一個DataSet 原本讀不到資料,幫他解決後,他改讀另一個 Dataset,卻讀不到。(還沒有空幫他看)
---發問----
然後樓主開另一個 B專案,將程式COPY 過去,竟然可以讀了。

再回到 A專案,還是不能讀,在請教為什麼。
-----------------------------------
To 樓主:不知我理解的有沒有錯誤


另一個問題的連結
本篇文章回覆於2019-12-05 17:02
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
不錯的參考

Ader Chen
檢舉此回應

請檢查一下專案的目標 Framework, 如果是 .NET Framework 3.0 或以下是不支援的:

如果在新增專案時, 架構選擇 .NET Framework 3.0 或以下, 則不支援 Take 擴充方法.
即使事後將專案目標改為 3.5 或以上也無效 (可能需再手動改依些參考組件).

必須在新增專案時, 架構選擇 .NET Framework 3.5 或以上, 才有支援 Take 擴充方法.

本篇文章回覆於2019-12-05 23:52
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
作者回應

李濟宇
檢舉此回應
回P陳大大是的沒錯 就是這樣 實在不知道為什麼
所以目前是直接以新專案繼續寫

回Ader Chen
查了一下 無法執行的專案是 .NET Framework4 所以應該不是這個問題 但還是感謝大大回應

回roar 還有其他的程式碼 主要不過主要就是 那一句不行 兩邊專案 程式碼一模一樣

目前因為開新專案已可以執行 所以我會先以新進度邁進
但還是會想知道原因 如有可能的原因再麻煩告知、解惑
本篇文章回覆於2019-12-06 11:03
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
不錯的參考

Ader Chen
檢舉此回應

請檢查一下有問題的專案, 其 [參考] 裡面有沒有包含 System.Core 組件.

延續 5樓:
如果在新增專案時, 架構選擇 .NET Framework 3.0 或以下, 專案不會引用 System.Core 組件,
即使事後將專案目標改為 3.5 或以上, 也不會增加引用 System.Core 組件.

必須在新增專案時, 架構選擇 .NET Framework 3.5 或以上, 新專案樣板才會包含 System.Core 組件.

要有 System.Core 組件, DataRow() 等 Enumerable 才會有 Take 等擴充功能.
本篇文章回覆於2019-12-06 22:52
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
不錯的參考

誰是誰
檢舉此回應
import namespace 的問題吧,Take 是 extension method
本篇文章回覆於2019-12-07 00:53
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
9樓
最有價值解答

P陳
檢舉此回應
To Ader 誰是誰:
樓主的A專案有二個 Dataset,第一個 Dataset 可以用 Take 來取得資料,第二個Dataset 就沒法用Take 來取得。
重新產生B專案,將程式由A專案COPY過去B專案,竟然可以了。
原則應該不是二位所判斷的問題,我再私訊請他傳給我看看
本篇文章回覆於2019-12-07 07:02
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
10樓
作者回應

李濟宇
檢舉此回應
經由P陳大大指點
應是有東西沒有引入
加上 imports System.Linq 即可
感謝各位大大的 回應
本篇文章回覆於2019-12-09 22:37
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.