none
Listview'de x.stununda bulunan veriyi if then else döngüsünde başka bir stuna yazdırmak RRS feed

  • Soru

  • Herkese merhaba,

    Listview'in 3.stünlarına gelen veriye göre 4.stuna açıklama yazmak istiyorum. Fakat aşağıdaki kısma ne yazacağımı bir türlü bulamadım.

    Yani;

    3.stünda "A" yazıyorsa 4.stünda "AA"

    3.stünda "B" yazıyorsa 4.stünda "BB"

    Şimdiden teşekkür ederim

    for (int i = 0; i < listView1.Items.Count; i++)
                    
                {
                    if (listView1.Items[i].SubItems[3].Text == "A")
                    {
                       // buraya nasıl bir şey yazmam gerekiyor
    
                    }
                }


    4 Temmuz 2019 Perşembe 14:56

Tüm Yanıtlar

  • 3 değişik yazim sekli:

    // 1
    for (int i = 0; i < listView1.Items.Count; i++)
    {
    	if (listView1.Items[i].SubItems[3].Text == "A")
    	{
    		listView1.Items[i].SubItems[4].Text = "AA";
    	} else if (listView1.Items[i].SubItems[3].Text == "B")
    	{
    		listView1.Items[i].SubItems[4].Text = "BB";
    	}
    }
    
    
    // 2
    for (int i = 0; i < listView1.Items.Count; i++)
    {
    	listView1.Items[i].SubItems[4].Text = 
    		listView1.Items[i].SubItems[3].Text == "A"
    		? "AA"
    		: listView1.Items[i].SubItems[3].Text == "B"
    		? "BB"
    		: listView1.Items[i].SubItems[4].Text;
    }
    
    // 3
    foreach (ListViewItem item in listView1.Items)
    {
    	item.SubItems[4].Text =
    			item.SubItems[3].Text == "A"
    			? "AA"
    			: item.SubItems[3].Text == "B"
    			? "BB"
    			: item.SubItems[4].Text;
    }
    



    How to create a Minimal, Reproducible Example
    The way to Go.
    World's most advanced open source (object-) relational Database.
    Flutter (for mobile, for web & desktop.

    4 Temmuz 2019 Perşembe 15:10
    Yanıtlayıcı
  • Çetin abi maalesef ilişkilendiremedim, hata da vermiyor fakat bir şey de yazdıramıyor.

    Boş bir alana label'da da denedim ama ona da yazdırmadı.

    Hatam sizce nerede olabilir?

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    using System.Data.SqlClient;
    using System.Data.OleDb;
    using System.Diagnostics;
    
    namespace prologic
    {
        public partial class form19_Material_List : Form
        {
            public form19_Material_List()
            {
                InitializeComponent();
            }
    
            SqlConnection baglanti = new SqlConnection("Data Source=LAPTOP-QLL9638S\\SQLEXPRESS;Initial Catalog=prologic;Integrated Security=True");
            private void verilerigoster()
    
            {
                listView1.Items.Clear();
                baglanti.Open();
                SqlCommand komut = new SqlCommand("select *from Table8 where Hvac_Field_Material != 'absent' order by Hvac_DDC_Name, Hvac_Field_Material", baglanti);
                SqlDataReader read = komut.ExecuteReader();
    
                for (int i = 0; i < listView1.Items.Count; i++)
                {
                    if (listView1.Items[i].SubItems[3].Text == "QBM81-5")
                    {
                        listView1.Items[i].SubItems[4].Text = "AA";
                    }
                    else if (listView1.Items[i].SubItems[3].Text == "QPM2100")
                    {
                        listView1.Items[i].SubItems[4].Text = "BB";
                    }
    
                }
    
                while (read.Read())
    
                    
    
    
                {
                    ListViewItem ekle = new ListViewItem();
    
                    ekle.SubItems.Add(read["Hvac_DDC_Name"].ToString());
                    ekle.SubItems.Add(read["Hvac_Field_Material"].ToString());              
                    listView1.Items.Add(ekle);              
                    
                }
    
                
    
                baglanti.Close();
            }
    
    
    
    
            private void button2_Click(object sender, EventArgs e)
            {
                form16_Hvac_Point_Import hvacpointimport = new form16_Hvac_Point_Import();
                hvacpointimport.Show();
                this.Hide();
            }
    
            private void button3_Click(object sender, EventArgs e)           
    
            {
                verilerigoster();
            }
        }
    }
    

    4 Temmuz 2019 Perşembe 16:29
  • Ergin icerik pek doğrular gorunmuyor:

     if (listView1.Items[i].SubItems[3].Text == "QBM81-5")
    
    // yerine
     if (listView1.Items[i].SubItems[3].Text.Trim() == "QBM81-5")
    

    dener misin.



    How to create a Minimal, Reproducible Example
    The way to Go.
    World's most advanced open source (object-) relational Database.
    Flutter (for mobile, for web & desktop.

    4 Temmuz 2019 Perşembe 17:48
    Yanıtlayıcı
  • Abi ilk onu denemiştim,

    hatırlarsanız onu da siz göstermiştiniz.


    4 Temmuz 2019 Perşembe 18:03
  • Dikkat etmemiştim daha once, sen kontrolu ListView boş iken yapiyorsun:



    How to create a Minimal, Reproducible Example
    The way to Go.
    World's most advanced open source (object-) relational Database.
    Flutter (for mobile, for web & desktop.

    5 Temmuz 2019 Cuma 00:33
    Yanıtlayıcı
  • Abi tekrar merhaba,

    3.stundaki değeri okuyup denemek için x bir label'a yazdırabiliyorum fakat 3.stunu okuyup 4.stuna yazdıramıyorum.

    invalid argument hatası veriyor.3'ün değeri index için geçerli değil diyor.

    Hatta;

    SubItems'ları aynı verince okumasını istediğim stüna da yazıyor. ( Aşağıdaki gibi )

    yani okuyup yazdırabiliyorum.

    Araştırıyorum.

    for (int i = 0; i < listView1.Items.Count; i++)
                {
                    if (listView1.Items[i].SubItems[2].Text.Trim() == "QBM81-5")
                    {                                     
                        listView1.Items[i].SubItems[2].Text = "12";
                    }
                    else if (listView1.Items[i].SubItems[2].Text.Trim() == "QPM2100")
                    {                                      
                        listView1.Items[i].SubItems[2].Text = "34";
                    }
    
                }





    5 Temmuz 2019 Cuma 17:26
  • Tekrar merhaba, O kadar araştırdım, ben işin içinden çıkamadım :) Listview’i fullrow falan yapın denmiş, onu da denedim. 3.stundakini okuyup ayrı bir label’e yazdırabiliyorum. Ya da 3.stunu okuyup yine 3.stuna yazdırabiliyorum fakat 3.stunu okuyup 4.stuna yazdıramadım.
    8 Temmuz 2019 Pazartesi 11:52