我的项目在列表视图中有5条记录。当我单击这些记录时,我希望将它们添加到文本框中,但是当我选择一行并添加时,所有5条记录都将添加到文本框中。当我选择5行时,它将打印5乘5值。选择并插入一行或多行,我想将这些行的值添加到文本框中。我将共享代码。等待您的答案。
private void mailTopla_Click(object sender, EventArgs e)
{
for (int i = 0; i<listView1.Items.Count; i++)
{
if (listView1.Items[i].Checked)
{
sqlConnection.Open();
SqlCommand komut = new SqlCommand("select email from musteriKayit",sqlConnection);
komut.ExecuteNonQuery();
SqlDataReader oku = komut.ExecuteReader();
while (oku.Read())
{
if (listView1.Items[i].Checked)
{
if (kimeTextBox.Text == "")
{
kimeTextBox.Text += (oku["email"].ToString().Trim());
}
else
{
kimeTextBox.Text += "," + (oku["email"].ToString().Trim());
}
}
}
oku.Close();
sqlConnection.Close();
}
}
}
问题出在您的第二个if条件上。您已经找到一个“已检查”项目,这将永远是正确的。因此,您的while循环将添加它读取的所有五个项目。如果检查所有五个项目,它将遍历所有数据5次,您将获得25个项目。第二个if需要在被检查项目的值和读取的数据的值之间匹配。仅当匹配时,才应将数据添加到控件中。