• 22-06-2013, 20:12:52
    #1
    merhaba arkadaşlar
    c# Windows Application uygulamamda, sql den verileri listview aktarıyorum.
    sorunum şu.
    ben müşterileri listview aktardıyımda gelen müşterilerden herhangi birsinin
    birden fazla sipariş( veya istek) bilgisi varsa bulunan satırın boyanmasını istiyorum.
    yardımcı olursanız sevinirim.
  • 22-06-2013, 20:36:40
    #2
    birden fazla siparis olup olmadığını if ile kontrol et daha sonra oluşturduğun ListViewItem ı listview1.item.add(item); dan önce şu kodu yaz.
    item.backcolor = color.red; (veya herhangi bir renk)

    umarım doğru anlamışımdır.
  • 22-06-2013, 21:27:11
    #3
    çalışmadı hocam.
  • 22-06-2013, 22:21:10
    #4
    kopyala yapıştır yapma kardeşim. aynı kodları kendin yaz. Muhtemelen büyük olan yerleri ben küçük yazdığım için çalışmamıştır. Çalışır
  • 23-06-2013, 15:31:22
    #5
    hocam dediğinizin farklı versiyonu nu denemiştim.fakat olmuyor..
    benim için önemli olan o if kısmı onu çözemedim.bi türlü internette ona benzer hiç bir şey bulamadım malesef.
  • 23-06-2013, 16:18:10
    #6
    atmaca53 adlı üyeden alıntı: mesajı görüntüle
    hocam dediğinizin farklı versiyonu nu denemiştim.fakat olmuyor..
    benim için önemli olan o if kısmı onu çözemedim.bi türlü internette ona benzer hiç bir şey bulamadım malesef.
    bir bool method yazacaksın şunun gibi
    bool Kontrol(string musteriadi)
    {
    SqlDataAdapter adap = new SqlDataAdapter("Select MusteriAdi From TabloAdi Group By MusteriAdi",baglanti);
    DataSet ds = new DataSet();
    adap.Fill(ds);
    if(ds.Tables[0].Rows.Count >1)
    return true;
    else
    return false;
    }
    bunu kayıt eklerken kullanacaksın müşteri adını vereceksin sana bool değeri gönderecek onuda şöyle kullanacaksın
    ListViewItem item = listView1.Items.Add(ds["ID"].ToString());
    if(Kontrol(ds["MusteriAdi"].ToString()))
        item.BackColor = Color.Red;
    ....
    şeklinde yazacaksın ve kayıt birden fazla olursa itemi otomatik kırmızı yapacak
  • 23-06-2013, 18:29:48
    #7
    Sizin paylaşmış olduğunuz bilgiler kendi yazdıklarımı harmanladım.bende tamm dediğiniz gibi bool deger gönderiyordum.bide sizin yaptığınız tarzda denedim.ama dışarı atıyor.
    Alıntı
    publicvoidliste() {

    baglanti.Open();
    stringsorgu = "SELECT CustomerID,CustomerName,CustomerTelephone,Email,Cu stomerProblem FROM Customers ";
    SqlCommandkomut = newSqlCommand(sorgu, baglanti);
    SqlDataReaderoku = komut.ExecuteReader();

    //sqldatareadersorunvaargibi normal verilerekleniyor. If bloğunukoyduğumda program
    Çatlıyor.

    while (oku.Read())
    {

    ListViewItemItemm = newListViewItem(oku["CustomerID"].ToString());
    Itemm.SubItems.Add(oku["CustomerName"].ToString());
    Itemm.SubItems.Add(oku["CustomerTelephone"].ToString());
    Itemm.SubItems.Add(oku["Email"].ToString());

    if (Kontrol(oku["CustomerTelephone"].ToString()))
    Itemm.BackColor = Color.Red;


    listView1.Items.Add(Itemm);
    }
    oku.Close();
    baglanti.Close();


    }
    Bool kontrolü ise sizin ki gibi yaptım
    Alıntı
    boolKontrol(string phone)
    {
    SqlDataAdapteradap = newSqlDataAdapter("select CustomerTelephone from Customers where Group By CustomerTelephone",baglanti);
    DataSet ds = newDataSet();
    adap.Fill(ds);
    if (ds.Tables[2].Rows.Count> 1)
    returntrue;
    else
    returnfalse;

    }
  • 23-06-2013, 18:41:31
    #8
    atmaca53 adlı üyeden alıntı: mesajı görüntüle
    Sizin paylaşmış olduğunuz bilgiler kendi yazdıklarımı harmanladım.bende tamm dediğiniz gibi bool deger gönderiyordum.bide sizin yaptığınız tarzda denedim.ama dışarı atıyor.

    Bool kontrolü ise sizin ki gibi yaptım
    benim yazdığım bool methodu direkt kopyala yapıştır yapmaman gerek şöyle orada baglanti dediğim bir SqlConnection lazımdır. aynı zamanda niye Tables[2] dediniz sorguda bi table geliyor tabi view değilse birde returnfalse yazıyor bitişik olarak onlarda direkt kodlar gibi ise yanlış olacaktır.
  • 23-06-2013, 19:16:21
    #9
    SqlConnection dışardan bağlanti "diye çağırıyorum." dipnot.foruma yapıştırıken editlemedim ondan böyle oldu.
    bu benim bool komutum
    Alıntı
    public bool ControlData()
    {

    string Str3 = "select CustomerTelephone from Customers where CustomerTelephone=@CustomerTelephone";

    SqlCommand kontrol = new SqlCommand(Str3, baglanti);
    kontrol.Parameters.AddWithValue("@CustomerTelephon e", "@CustomerTelephone");
    if (baglanti.State == ConnectionState.Closed) baglanti.Open();
    SqlDataReader oku1 = kontrol.ExecuteReader();

    int x = 0;
    while (oku1.Read() == true)
    {
    x++;
    if (x > 1)
    {
    MessageBox.Show("Test");

    oku1.Close();
    baglanti.Close();
    return true;



    }
    else
    {
    return false;
    }


    }

    return true;
    }