2017-09-24 19 views
0

我試圖創建一個vb.net應用程序,它可以將病人的病史保存到數據庫中。但我堅持我如何將所有列表框項目保存到單個行(使用逗號作爲分隔符)。
我嘗試使用此代碼,但它不僅節省了最後一條記錄:
如何保存所有列表框項目以逗號(「,」)作爲分隔符訪問數據庫

Dim diagnosis As String 
     For i As Integer = 0 To txtDiagnosis.Items.Count - 1 
      diagnosis = String.Concat(txtDiagnosis.Items(i), ",") 
     Next 
      'Insert Query Here 

我也希望最後一個記錄不具有後一個逗號。在此先感謝

+0

這違反了[第一範式(收藏https://en.m.wikipedia.org/wiki/First_normal_form)。改爲使用1:n關係的第二個表。 – Heinzi

+0

@ Heinzi你是什麼意思它違反了第一範式?我只是想挽救與逗號(,)作爲分隔符的所有列表框項目數據庫,例如我在我的列表框 項目1 項目2 項目3 3項我想這些項目數據庫保存爲: 項目1,項目2,項目3 – ronstoppable

+0

你讀過我鏈接到的維基百科文章嗎? – Heinzi

回答

0

使用String.Join函數。 String.Join(Of T) Method

Dim diagnosis As String = String.Join(", ", txtDiagnosis.Items) 

您可以將項目轉換爲字符串的集合

Dim allDiagnosis = txtDiagnosis.Items.Select(Function(item) item.ToString()) 
Dim diagnosis As String = String.Join(", ", allDiagnosis) 

對於ListBox.Items你需要顯式強制徵收對象

Dim allDiagnosis = txtDiagnosis.Items. 
           Cast(Of Object)(). 
           Select(Function(item) item.ToString()) 
Dim diagnosis As String = String.Join(", ", allDiagnosis) 
+0

我得到這個錯誤使用該方法(不支持延遲擴展方法) – ronstoppable

+0

@ronstoppable,什麼類型的'txtDiagnosis.Items'? – Fabio

+0

我不知道這是什麼意思。但即時通訊在Visual Studio 2010上使用列表框。我已經嘗試了上面的代碼,但它給了我這個錯誤: '參數'數字'的參數沒有指定'公共功能STR(數字作爲對象)作爲String'.'和' '選擇'不是'System.Windows.Forms.ListBox.ObjectCollection'的成員。「# – ronstoppable

相關問題