[英]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.