VB.Net我使用兩種形式 - frmDetails,frmInventory frmInventory包含一個列表框,用於讀取包含列表框的文本文件書名,作者,類別,#庫存和每件物品的價格(五個要素)。列表框僅顯示書名。使用已從列表框中選擇的文本文件中的數據填充第二個表單
frmDetails包含與文本文件中的元素相匹配的單獨文本框。
如果用戶選擇frmInventory列表框中的一個項目(標題)並從下拉菜單中選擇更新,則frmDetails中的文本框需要填充與其標籤相匹配的元素(帶標題的標題,作者和作者等)。換句話說,選中後,需要讀取文本文件,解析數據並填充到每個文本框中。
我已經嘗試了幾種不同形式的代碼:
Dim selectedUpdate As String = lstBookList.SelectedItem.ToString
If selectedUpdate = lstBookList.SelectedItem.ToString Then
Dim queryUpdate = From item In File.ReadAllLines("Books.txt")
Let ti = item.Split(","c)(0)
Let au = item.Split(","c)(1)
Let ca = item.Split(","c)(2)
Let qt = item.Split(","c)(3)
Let co = item.Split(","c)(4)
Where ti = selectedUpdate
Select ti & "," & au & "," & ca & "," & qt & "," & co
For Each ti In queryUpdate
frmDetails.txtTitle.Text = ti
For Each au In queryUpdate
frmDetails.txtAuthor.Text = au
For Each qt In queryUpdate
frmDetails.txtStock.Text = qt
For Each co In queryUpdate
frmDetails.txtPrice.Text = co
Next
Next
Next
Next
End If
frmDetails.ShowDialog()
End Sub
或者:
Dim selectedUpdate As String = lstBookList.SelectedItem.ToString
Dim itemToUpdate() As String = File.ReadAllLines("Books.txt")
If selectedUpdate = lstBookList.SelectedItem.ToString Then
Dim queryTitle = From bookTitle In itemToUpdate
Let ti = bookTitle.Split(","c)(0)
Where ti = selectedUpdate
Select ti
For Each ti In queryTitle
frmDetails.txtTitle.Text = ti
Next
Dim queryAuthor = From bookAuthor In itemToUpdate
Let au = bookAuthor.Split(","c)(1)
Where au = selectedUpdate
Select au
For Each au In queryAuthor
frmDetails.txtAuthor.Text = au
Next
或者:
Dim selectedUpdate As String = lstBookList.SelectedItem.ToString
Dim itemToUpdate() As String = File.ReadAllLines("Books.txt")
If selectedUpdate = lstBookList.SelectedItem.ToString Then
Dim queryUpdate = From item In File.ReadAllLines("Books.txt")
Let ti = item.Split(","c)(0)
Let au = item.Split(","c)(1)
Let ca = item.Split(","c)(2)
Let qt = item.Split(","c)(3)
Let co = item.Split(","c)(4)
Where ti = selectedUpdate
Select ti, au, ca, qt, co
frmDetails.txtTitle.Text = (queryUpdate.ToString) ti
frmDetails.txtAuthor.Text = au
frmDetails.txtStock.Text = qt
的問題是,在記錄分析數據,以便它可以分散到不同的文本字段中。
任何援助將不勝感激。
這不是100%清楚地知道你正在嘗試做的。更糟糕的是,你的代碼遵循非常差的編碼標準。當我看到4個這樣寫的嵌套循環時,我的眼睛受傷了。 '讓xx = item.Split(「,」c)(0)'也不好。沒有冒犯性,但我建議先閱讀一本關於VB.NET的書,然後開始編碼。否則,你會一直在每一個小問題上磕磕絆絆。 – Neolisk
我不知道這是否是一些標準的家庭作業,但它類似於我最近看到的幾個問題。無論如何,看看我的答案在這裏:http://stackoverflow.com/questions/12574143/getting-started-on-inventory-program-in-vb/13543231#13543231它涉及到創建一個圖書類,閱讀所有書籍一個列表(書),所以你可以很容易地用linq查詢它。如果書籍列表太大而無法保存在內存中,我建議使用數據庫。 sqlite將是一個簡單的選項 – Steve
通過這種方法,您可以將單個書籍對象傳遞給新的表單,並簡單地設置文本框,例如txtAuthor.Text = book.author,txtTitle.Text = book。標題等 – Steve