Şimdi Ara

C# Access Veri Tabanınki İki Farklı Satırı Birleştirme

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
15
Cevap
0
Favori
2.564
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Merhaba arkadaşlar. Saatlerce cevabını aradığım ama bir türlü bulamadığım bir sorun. "coalesce" kodu ile ilgili bilgiler buldum yabancı kaynaklarda ama bir türlü uygulayamadım.
    Benim sıkıntım şu; benim iki farklı sütunum var. Birincisi "urun_adi" diğeri "siparis_nosu". Yapmak istediğim "siparis_nosu" aynı olan "urun_adi" değerlerini birleştirmek.

    örneğin:
    --siparis_nosu ---- urun_adi
    1) 2 ---- çikolata
    2) 2 ---- kek

    yapmak istediğim:
    -- siparis_nosu --- urun adı
    1) 2 ----- çikolata / kek

    Derdimi basitçe bu şekilde anlattım. Eğer anlaşılamadıysam ss çekip o şekilde de anlatabilirim.
    Şimdiden teşekkürler



    < Bu mesaj bu kişi tarafından değiştirildi tembelizm -- 5 Temmuz 2013; 22:24:26 >



  • veritabanınında bunların zaten ayrı durması gerek, hangi sipariş no da hangi ürünler olduğunu bulman için böyle olması gerek anca bunları yazılım tarafında birleştirirsin. İstediğin yapılmaz mı yapılır çok uğraştırabilir ama gereksiz, örneğin siparişten 1 tane ürün çıkartıcaksın birleştirdiliğinde bunu çıkartmak için can çekişirsin yada ekleme kısmıda aynı şekil gerek yok böyle şeylere
  • Peki o satici kismini kullanici ekleyecekse nasil olacak o is? Belki onlarca satici olacak ve o saticilarla bir suru islem yurutulecek. Yeni tablolar yaratarak bu isi nasil yapariz?

    < Bu ileti mobil sürüm kullanılarak atıldı >
  • Veritabanı ilişkisini iyi ayarlaman lazım bu iş için örneğin

    Sağlayıcılar, Ürünler, Siparişler, Müşteriler, Siparişteki Ürünler diye 5 tablon olsun bunlara kısaca şöyle isim verelim

    Sağlayıcılar = C, Urunler = U, Siparişler = S, Müşterlier = M, Siparişteki Ürünler = SU

    C { ID, Adi } //Sağlayıcı ID si ile adı

    U { ID, C_ID, Adi, ozelligi } // Ürün ID, Sağlayıcı ID, Adi, Özelliği vs

    M { ID, Adi, Tel vs } // Müşteri ID, Adı, Telefonu vs.

    S { ID, M_ID, Fiyat vs. } // Sipariş ID, Müşteri ID, Sipariş tutarı

    SU { S_ID, U_ID, Miktar } //Sipariş ID, Ürün ID, Üründen ne kadar olduğu. Hangi Siparişte hangi ürünlerin bulunduğuna dair bulunan tablo


    Fiyatı Ürünler tablosunada koyabilirsin ordan siparişdeki ürünlerdeki miktarla ürünlerdeki fiyatı çarparsın sipariş fiyatını buldurabilirsin bu şekilde daha sağlıklı olur. Senin sorduklarına göre aklıma gelen şekil bu, aklına takılan birşey olursa sorabilirsin




  • quote:

    Orijinalden alıntı: aLiM KaFKeF

    Veritabanı ilişkisini iyi ayarlaman lazım bu iş için örneğin

    Sağlayıcılar, Ürünler, Siparişler, Müşteriler, Siparişteki Ürünler diye 5 tablon olsun bunlara kısaca şöyle isim verelim

    Sağlayıcılar = C, Urunler = U, Siparişler = S, Müşterlier = M, Siparişteki Ürünler = SU

    C { ID, Adi } //Sağlayıcı ID si ile adı

    U { ID, C_ID, Adi, ozelligi } // Ürün ID, Sağlayıcı ID, Adi, Özelliği vs

    M { ID, Adi, Tel vs } // Müşteri ID, Adı, Telefonu vs.

    S { ID, M_ID, Fiyat vs. } // Sipariş ID, Müşteri ID, Sipariş tutarı

    SU { S_ID, U_ID, Miktar } //Sipariş ID, Ürün ID, Üründen ne kadar olduğu. Hangi Siparişte hangi ürünlerin bulunduğuna dair bulunan tablo


    Fiyatı Ürünler tablosunada koyabilirsin ordan siparişdeki ürünlerdeki miktarla ürünlerdeki fiyatı çarparsın sipariş fiyatını buldurabilirsin bu şekilde daha sağlıklı olur. Senin sorduklarına göre aklıma gelen şekil bu, aklına takılan birşey olursa sorabilirsin

    Ben yazdıklarınızı pek anlayamadım çok üzgünüm. Bugün zaten bayağı uğraştım kafam iyice doldu daha sonra tekrar detaylıca okuyacağım. Ama şunu söylemem gerekiyor; kullanıcı istediği kadar müşteri ekleyip bu müşteriye satış yapacak. Programın temelinde bu var. Şimdi ben bunun üzerine satislar adında bir tablo yaptım bu tabloda satış yapılan müşterinin ID'si, ürünün ID'si, tarih, tutar gibi bilgiler mevcut. Tabi ben bu bilgileri çekmeye çalışırken atıyorum aynı müşteriye 4 farklı ürün sattığım için 4 satır müsteri ID'si aynı oluyor. Ben bu müşteri ID'si ile okuttuğumda bu 4 satırdan sadece birisini çekiyor. Diğer 3 satırı çekemiyorum.

    Yapmak istediğim bu aynı olan ID'lerin satırındaki bilgileri yani urun ID, tutar gibi bilgileri bir listview veya bir textboxta kullanmak ardından işleme sokmak.

    Bu arada ilginiz için çok çok teşekkürler. İki gündür kafamı bayağı kurcalıyor bu durum.




  • quote:

    Orijinalden alıntı: tembelizm

    quote:

    Orijinalden alıntı: aLiM KaFKeF

    Veritabanı ilişkisini iyi ayarlaman lazım bu iş için örneğin

    Sağlayıcılar, Ürünler, Siparişler, Müşteriler, Siparişteki Ürünler diye 5 tablon olsun bunlara kısaca şöyle isim verelim

    Sağlayıcılar = C, Urunler = U, Siparişler = S, Müşterlier = M, Siparişteki Ürünler = SU

    C { ID, Adi } //Sağlayıcı ID si ile adı

    U { ID, C_ID, Adi, ozelligi } // Ürün ID, Sağlayıcı ID, Adi, Özelliği vs

    M { ID, Adi, Tel vs } // Müşteri ID, Adı, Telefonu vs.

    S { ID, M_ID, Fiyat vs. } // Sipariş ID, Müşteri ID, Sipariş tutarı

    SU { S_ID, U_ID, Miktar } //Sipariş ID, Ürün ID, Üründen ne kadar olduğu. Hangi Siparişte hangi ürünlerin bulunduğuna dair bulunan tablo


    Fiyatı Ürünler tablosunada koyabilirsin ordan siparişdeki ürünlerdeki miktarla ürünlerdeki fiyatı çarparsın sipariş fiyatını buldurabilirsin bu şekilde daha sağlıklı olur. Senin sorduklarına göre aklıma gelen şekil bu, aklına takılan birşey olursa sorabilirsin

    Ben yazdıklarınızı pek anlayamadım çok üzgünüm. Bugün zaten bayağı uğraştım kafam iyice doldu daha sonra tekrar detaylıca okuyacağım. Ama şunu söylemem gerekiyor; kullanıcı istediği kadar müşteri ekleyip bu müşteriye satış yapacak. Programın temelinde bu var. Şimdi ben bunun üzerine satislar adında bir tablo yaptım bu tabloda satış yapılan müşterinin ID'si, ürünün ID'si, tarih, tutar gibi bilgiler mevcut. Tabi ben bu bilgileri çekmeye çalışırken atıyorum aynı müşteriye 4 farklı ürün sattığım için 4 satır müsteri ID'si aynı oluyor. Ben bu müşteri ID'si ile okuttuğumda bu 4 satırdan sadece birisini çekiyor. Diğer 3 satırı çekemiyorum.

    Yapmak istediğim bu aynı olan ID'lerin satırındaki bilgileri yani urun ID, tutar gibi bilgileri bir listview veya bir textboxta kullanmak ardından işleme sokmak.

    Bu arada ilginiz için çok çok teşekkürler. İki gündür kafamı bayağı kurcalıyor bu durum.



    Sorman gereken şey şuymuş aslında senin, "Sorgu yapıyorum ama 4 satır olan veri tek satır geliyor neden ?" onun yerine satırları birleştirmeye kalkışmışsın :)


    sen veriyi çekmeye çalıştığın yeri buraya yaz nerde hata yaptığını bulalım




  • quote:

    Orijinalden alıntı: aLiM KaFKeF

    quote:

    Orijinalden alıntı: tembelizm

    quote:

    Orijinalden alıntı: aLiM KaFKeF

    Veritabanı ilişkisini iyi ayarlaman lazım bu iş için örneğin

    Sağlayıcılar, Ürünler, Siparişler, Müşteriler, Siparişteki Ürünler diye 5 tablon olsun bunlara kısaca şöyle isim verelim

    Sağlayıcılar = C, Urunler = U, Siparişler = S, Müşterlier = M, Siparişteki Ürünler = SU

    C { ID, Adi } //Sağlayıcı ID si ile adı

    U { ID, C_ID, Adi, ozelligi } // Ürün ID, Sağlayıcı ID, Adi, Özelliği vs

    M { ID, Adi, Tel vs } // Müşteri ID, Adı, Telefonu vs.

    S { ID, M_ID, Fiyat vs. } // Sipariş ID, Müşteri ID, Sipariş tutarı

    SU { S_ID, U_ID, Miktar } //Sipariş ID, Ürün ID, Üründen ne kadar olduğu. Hangi Siparişte hangi ürünlerin bulunduğuna dair bulunan tablo


    Fiyatı Ürünler tablosunada koyabilirsin ordan siparişdeki ürünlerdeki miktarla ürünlerdeki fiyatı çarparsın sipariş fiyatını buldurabilirsin bu şekilde daha sağlıklı olur. Senin sorduklarına göre aklıma gelen şekil bu, aklına takılan birşey olursa sorabilirsin

    Ben yazdıklarınızı pek anlayamadım çok üzgünüm. Bugün zaten bayağı uğraştım kafam iyice doldu daha sonra tekrar detaylıca okuyacağım. Ama şunu söylemem gerekiyor; kullanıcı istediği kadar müşteri ekleyip bu müşteriye satış yapacak. Programın temelinde bu var. Şimdi ben bunun üzerine satislar adında bir tablo yaptım bu tabloda satış yapılan müşterinin ID'si, ürünün ID'si, tarih, tutar gibi bilgiler mevcut. Tabi ben bu bilgileri çekmeye çalışırken atıyorum aynı müşteriye 4 farklı ürün sattığım için 4 satır müsteri ID'si aynı oluyor. Ben bu müşteri ID'si ile okuttuğumda bu 4 satırdan sadece birisini çekiyor. Diğer 3 satırı çekemiyorum.

    Yapmak istediğim bu aynı olan ID'lerin satırındaki bilgileri yani urun ID, tutar gibi bilgileri bir listview veya bir textboxta kullanmak ardından işleme sokmak.

    Bu arada ilginiz için çok çok teşekkürler. İki gündür kafamı bayağı kurcalıyor bu durum.



    Sorman gereken şey şuymuş aslında senin, "Sorgu yapıyorum ama 4 satır olan veri tek satır geliyor neden ?" onun yerine satırları birleştirmeye kalkışmışsın :)


    sen veriyi çekmeye çalıştığın yeri buraya yaz nerde hata yaptığını bulalım

    Baktım işin içinden çıkamıyorum programın yapısını değiştirdim. O yüzden ikinci mesajımdaki sorun diğerinden farklı. Şimdi şöyle bir kodla verileri okuyup listview'e atıyorum. Ama o siparis nosuna ait yalnızca tek bir satır geliyor. Buyrun kodlar:
     

    ListViewItem secilen = listView1.FocusedItem;
    a =Convert.ToInt32(secilen.SubItems[0].Text);
    OleDbConnection conn = new OleDbConnection(baglanti);
    String bul = "SELECT * FROM isler WHERE siparis_nosu=" + a + "";
    OleDbCommand komut = new OleDbCommand(bul, conn);
    OleDbDataReader oku = null;
    conn.Open();
    oku = komut.ExecuteReader();
    while (oku.Read())
    {
    listView2.Items.Clear();
    ListViewItem liv = new ListViewItem(oku["is_tipi"].ToString());
    liv.SubItems.Add(oku["birim_fiyati"].ToString());
    liv.SubItems.Add(oku["is_miktari"].ToString());
    liv.SubItems.Add(oku["toplam_fiyat"].ToString());
    listView2.Items.Add(liv);
    }
    conn.Close();
    oku.Close();




  • listView2.Items.Clear();


    while içersinde her yeni veri geldiğinde listView'i boşaltıyosun while'in içinden çıkart onun üstüne koy bunu
  • Hahaha saka gibi
    Cok tesekkurler yardimlarinizdan dolayi

    < Bu ileti mobil sürüm kullanılarak atıldı >
  • tembelizm kullanıcısına yanıt
    sql ile ilgili bir çok kaynak var bununla ilgili. derdini basitçe çok güzel anlatmışsın hocam, fakat derdinin çözümü çok basit. Biraz öğrenip ya da araştırıp, çözemezseniz sormanız daha iyi olacak sanki
  • quote:

    Orijinalden alıntı: yazilimsever

    sql ile ilgili bir çok kaynak var bununla ilgili. derdini basitçe çok güzel anlatmışsın hocam, fakat derdinin çözümü çok basit. Biraz öğrenip ya da araştırıp, çözemezseniz sormanız daha iyi olacak sanki

    İlk sorunumun çözümü bence basit değil. Çok fazla araştırdım ve hala bulamadım. Bende pes edip başka bir yoldan ilerlemeye karar verdim.
    Eğer ilk sorumun cevabını biliyorsanız, paylaşırsanız çok faydalı olur.



    < Bu mesaj bu kişi tarafından değiştirildi tembelizm -- 7 Temmuz 2013; 23:57:56 >
  • quote:

    Orijinalden alıntı: tembelizm

    Merhaba arkadaşlar. Saatlerce cevabını aradığım ama bir türlü bulamadığım bir sorun. "coalesce" kodu ile ilgili bilgiler buldum yabancı kaynaklarda ama bir türlü uygulayamadım.
    Benim sıkıntım şu; benim iki farklı sütunum var. Birincisi "urun_adi" diğeri "siparis_nosu". Yapmak istediğim "siparis_nosu" aynı olan "urun_adi" değerlerini birleştirmek.

    örneğin:
    --siparis_nosu ---- urun_adi
    1) 2 ---- çikolata
    2) 2 ---- kek

    yapmak istediğim:
    -- siparis_nosu --- urun adı
    1) 2 ----- çikolata / kek

    Derdimi basitçe bu şekilde anlattım. Eğer anlaşılamadıysam ss çekip o şekilde de anlatabilirim.
    Şimdiden teşekkürler

    anladığım kadarıyla şunu istiyorsun

    declare @Deger varchar(500)
    select @Deger = coalesce(@Deger + ' / ', '') + siparis
    from siparisler where siparisno='1'
    select @deger as siparislerim

    not:
    --tablo ismi -> siparisler
    --alan isimleri -> siparisno , siparis

    siparisno kısmına kaç numaralı siparişleri birleştirmek istediğini yazarsın hepsini listelemek için bir while döngüsü kurarsın




  • ama access de çalışmayabilir haberin olsun sql server ya da oracle denersen daha başarılı olursun
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.