早上好,堆棧器!ASP VB NET列表(T)找不到每個循環的方法
我正在設計一個大規模的更新頁面。以下是一般步驟:
- 我有一個名爲item的類,它有兩個屬性:設備號和新的到期日期。
- 我有一個文本框,我從Excel中粘貼值,這些值由兩列分隔的一個vbtab字符組成:列是一個設備號和一個新的截止日期
- 單擊一個按鈕,文本框中的值是解析爲一個列表(項目),並且設備主控爲命令文本的SQL標準構建一個字符串。
- 該命令從數據庫中填充數據集,該數據庫獲取設備編號和當前到期日期。
- 我手動添加一列到數據集(新的截止日期)
- 我遍歷數據集的行,我使用list(item)find方法匹配列表中的設備並從數據庫中獲取來自文本解析值的新的截止日期。在數據集中使用find方法超過1個行時
- 一切都順利,不同之處在於,該方法失敗:
這裏是從點5和6的代碼:
da.Fill(ds, "Equipments")
dt = ds.Tables(0)
ds.Tables(0).Columns.Add("column_1", Type.GetType("System.DateTime"))
Dim rw As DataRow
For Each rw In ds.Tables(0).Rows
Dim strsearch As String = rw(0).ToString
Dim fequnumb As item = myItemList.Find(Function(p) p.EquipNumber = strsearch)
rw(2) = fequnumb.DueDate <- Error occurs here
Next
同樣,如果代替ftechid.DueDate
我把喜歡Today()
的代碼運行正常的循環,並正確填寫GridView控件,但如果我離開ftechid.DueDate
那麼錯誤的第一行後拋出一個靜態值:
Object reference not set to an instance of an object.
任何幫助是非常讚賞至於如何使用find方法的for..each
循環
你覺得如果查找無法將strsearch變量相匹配會怎樣呢? – Steve
@Steve這意味着來自用戶的Excel列表已過時,並且設備不再存在於數據庫中。這是代碼中的一個防錯功能。我不會把這個值放在gridview中,在那裏我會有另一個按鈕來更新用戶查看後的值。 –
我建議你使用調試器。在Find行放置一個斷點,然後檢查變量strsearch的值和fequnumb中的返回值。有些東西不是你想要的 – Steve