[英]All Listview data show in textbox using loop
Dim Mysqlconn = New SqlConnection
Mysqlconn.ConnectionString = "Data Source=DESKTOP-D32ONKB;Initial Catalog=Attendance;Integrated Security=True"
Dim dt As DataTable = New DataTable("studentdata")
Mysqlconn.Open()
Dim query As String
query = "select ID from studentdata where Class='" & ComboBox1.Text & "'"
Dim Command = New SqlCommand(query, Mysqlconn)
Dim dr = Command.ExecuteReader(CommandBehavior.CloseConnection)
ListView1.Items.Clear()
Dim x As ListViewItem
Do While dr.Read = True
x = New ListViewItem(dr("ID").ToString)
ListView1.Items.Add(x)
Loop
For i = 0 To ListView1.Items.Count - 1
TextBox1.Text = ListView1.Items(i).SubItems(0).Text
Next
在此代碼中, Textbox1
顯示Listview1
的最后一行。 我的要求是Listview1中textbox1中的所有Listview1數據一一顯示。 是否可以在 textbox1 中顯示使用循環從 Listview1 讀取所有數據。 謝謝...
一個文本框一次只包含一個字符串。 如果它設置為允許多行字符串(問題中不清楚),您可以用換行符分隔每個項目。 否則,您可以使用逗號等分隔符分隔字符串。
Dim query As String = "select ID from studentdata where Class= @class"
Using conn As New SqlConnection("Data Source=DESKTOP-D32ONKB;Initial Catalog=Attendance;Integrated Security=True"), _
cmd As New SqlCommand(query, conn)
cmd.Parameters.Add("@class", SqlDbType.NVarChar, 20).Value = ComboBox1.Text
conn.Open()
Using dr As SqlDataReader = cmd.ExecuteReader()
While dr.Read()
ListView1.Items.Add(New ListViewItems(dr("ID").ToString()))
End While
End Using
End Using
TextBox1.Text = String.Join(",", ListView1.Items.Select(Function(i) i.SubItems(0).Text))
另請注意我如何使用查詢參數在 SQL 命令中包含 combobox 值。 這是一件大事; 任何其他事情都會給你帶來麻煩,通常遲早會出現。
使用 as 循環,正確的方法是這樣的:
Dim lines As New List(Of String)
For i = 0 To ListView1.Items.Count - 1
lines.Add(ListView1.Items(i).Text)
Next
TextBox1.Lines = lines.ToArray()
您不能一直將Text
屬性設置為新值並期望舊值無緣無故地存在。 您每次都可以將 append 發送到Text
,但效率很低。 正確的方法是創建一個值列表,將其轉換為String
數組,然后將其分配給Lines
屬性。
請注意,獲取第一個子項的Text
沒有意義,因為它與項目的Text
相同。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.