none
Veriler için kod oluşturma RRS feed

  • Soru

  • mrb,

    Personel tablosuna eklenecek her personel için kod oluşturmak istiyorum.

    bir metod oluşturdum, ama tablodan son değeri alıp 1 artıracak,

    Tablo adı :"TBLPerson", sütun adı : Per_kod

    ön ek : PR , Son ek : 0001

    bu "PR0001" Şeklinde oluşacak,

    kodlarımı yazacaktım ama kurgulayamadım, kodlar çok karıştı, sadece oluşumunun metodunu ekledim, ama tablodan verinin son değerini almak ve buna +1 eklemek istiyorum, yardım lütfen,

    private string KodVer(string kodOnEk, int kodSonSayisi)
            {
                int sifirAdedi = 6 - (kodOnEk.Length + kodSonSayisi.ToString().Length);
                string sifirDizisi = new string('0', sifirAdedi);
                return kodOnEk + sifirAdedi + kodSonSayisi;
            }
    //
    private void btnKod_Click(object sender, EventArgs e)
            {
               txtPerKodno.Text=
            }


    Bunun için ayrı bir tablo da oluşturdum. TBL_Kod adında. Sütunlar, "ID,ON_EK,SON_EK" şeklinde. On ek'e göre en büyük değeri +1 olarak birleştirip işlem yapmak istiyorum
    • Düzenleyen canleveent 9 Aralık 2018 Pazar 15:57
    9 Aralık 2018 Pazar 14:09

Tüm Yanıtlar

  • Per_Kod alanına 1,2,3 ... gibi değerler yazın. PR0001 yazmayın. (Bence) Buna bile gerek yok, Id alanını bu iş için kullanabilirsiniz.
    Verikeri göstereceğiniz yerlerde;

    $"PR{personelKodu.ToString("000000")}"

    şeklinde gösterin.


    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com

    9 Aralık 2018 Pazar 14:14
    Moderatör
  • Mrb,

    Bu insert sonrası oluyor, ve kullandim. Fakat ID bı aşamadan sonra saçmalıyor. Şöyle ki 731 den sonra 100189 a atladi. Bunun üzerine devam edince uyumsuz oluyor.

    9 Aralık 2018 Pazar 15:48
  • Mrb,

    Bu insert sonrası oluyor, ve kullandim. Fakat ID bı aşamadan sonra saçmalıyor. Şöyle ki 731 den sonra 100189 a atladi. Bunun üzerine devam edince uyumsuz oluyor.


    ID kendi kendine o kadar sayı birden atlamaz ki? 1 arttırarak devam et dediyseniz, 1-2-3-4 diye devam eder. Aniden o kadar sayı artmasının sebebi, gözünüzden kaçırdığınız bir kod olabilir.

    İletişim

    9 Aralık 2018 Pazar 17:36
    Moderatör
  • Aslında saçmalamıyor da. Eğer benzersiz numara olması önemli ise Id yi kullanın.

    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com

    9 Aralık 2018 Pazar 17:37
    Moderatör
  • Mrb,

    Bu insert sonrası oluyor, ve kullandim. Fakat ID bı aşamadan sonra saçmalıyor. Şöyle ki 731 den sonra 100189 a atladi. Bunun üzerine devam edince uyumsuz oluyor.


    ID kendi kendine o kadar sayı birden atlamaz ki? 1 arttırarak devam et dediyseniz, 1-2-3-4 diye devam eder. Aniden o kadar sayı artmasının sebebi, gözünüzden kaçırdığınız bir kod olabilir.

    İletişim

    Yazdığım deger rastgele Bir şey değil. Şuan db'deki bir durum. 1+1 artıp 731 e geldi, sonra oraya kadar boşluk attı. Bunun kod ile kaynağı nasıl olur, bilemiyorum. Tmm kabulümüz, acemiyiz. Ama bunun kod kaynağı ile olduğuna hemfikir degilid

    9 Aralık 2018 Pazar 18:18
  • Aslında saçmalamıyor da. Eğer benzersiz numara olması önemli ise Id yi kullanın.

    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com

    Daha önce bu konuda https://social.msdn.microsoft.com/Forums/tr-TR/sqlservertr/thread/01ff33fa-dc88-4edc-b18e-49f7e2d4ed20/#041d87c3-768f-4173-b407-1aa61e51aaa9

    Burada destek talebimiz oldu. Ayrı bir tablo da da boşluk attı, SQL. Nedenini bilmiyorum. Çözemedim bu yol ihtiyaç oldu. Maalesef

    9 Aralık 2018 Pazar 18:24
  • Bahsi geçen problem muhtemelen SQL server'ı hatalı bir şekilde kapattığınız için olmuştur. SQL önlem olarak id'yi böyle arttırır. Buna çözüm olarak sequence kullanabilirsiniz. 


    www.cihanyakar.com

    9 Aralık 2018 Pazar 21:04
  • Per_Kod alanına 1,2,3 ... gibi değerler yazın. PR0001 yazmayın. (Bence) Buna bile gerek yok, Id alanını bu iş için kullanabilirsiniz.
    Verikeri göstereceğiniz yerlerde;

    $"PR{personelKodu.ToString("000000")}"

    şeklinde gösterin.


    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com

    mrb,

    aşağıdaki koda göre her türlü denedim, ToString() içerisine "000000" hata veriyor,

    $"PR{dr["PERSONEL_ID"]}".ToString("0000");



    10 Aralık 2018 Pazartesi 15:31
  • Per_Kod alanına 1,2,3 ... gibi değerler yazın. PR0001 yazmayın. (Bence) Buna bile gerek yok, Id alanını bu iş için kullanabilirsiniz.
    Verikeri göstereceğiniz yerlerde;

    $"PR{personelKodu.ToString("000000")}"

    şeklinde gösterin.


    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com

    mrb,

    aşağıdaki koda göre her türlü denedim, ToString() içerisine "000000" hata veriyor,

    $"PR{dr["PERSONEL_ID"]}".ToString("0000");



    Parantezlerinizin sırası hatalı

    www.cihanyakar.com

    10 Aralık 2018 Pazartesi 16:16
  • ayrıca tip int değil, parantezleri düzeltsende hata verecek.

    $"PR{((int)dr["PERSONEL_ID"]).ToString("0000")}";



    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com

    10 Aralık 2018 Pazartesi 17:07
    Moderatör
  • ayrıca tip int değil, parantezleri düzeltsende hata verecek.

    $"PR{((int)dr["PERSONEL_ID"]).ToString("0000")}";



    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com

    Additional information: Belirtilen atama geçerli değil.
    11 Aralık 2018 Salı 06:39
  • o alanın Database tipi ne?

    DataReader ile veri çekmeyin, dataset ya da EF kullanın diyecem, olay farklı yerlere gidecek :(


    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com

    11 Aralık 2018 Salı 11:37
    Moderatör