C# Otomatik fiş numarası arttırma

0

Merhaba arkadaşlar ; 

C# uygulamamda fiş numarası alanım var bu alanı veritabanına kayıt ediyorum.İlk girilen fişin numarasını "000001" olarak kayıt ettim.İkinci gireceğim yeni fişin numarasını otomatik olarak "00002" olarak kayıt etmek istiyorum.Ve sonrasında girilecek olan tüm fişleri 1 arttırıp girmek istiyorum.Bunun ile ilgili bilgisi olan arkadaşlar varsa yardımlarını bekliyorum.Şimdiden yorumlarınız için teşekkür ederim.

dyildiz dyildiz (183)
5 yıl önce sordu

    Toplam 2 Cevap


    0

    Şöyle bir şey düşündüm işine yarar muhemelen.

    Bu kodda sadece yapman gereken veritabanına bağlanmak ve en son eklenen fiş numarasını almak. Ben 6 hane üzerinden yaptım sen senaryona göre değiştirirsin.

     private void button1_Click(object sender, EventArgs e)
            {
               //veritabanına bağlan ve en son eklediğin fiş numarasını al. arih gibi bir alanın vardır ona göre sıralayarak bulabilirsin.
               //diyelimki en son eklediğin fiş numarası şu olsun
                string no = "000250";            
                string yeniFisNo=GetYeniFisNumarasi(no);
            }
    
            public string GetYeniFisNumarasi(string fisNo)
            {
                int i = Int32.Parse(fisNo) + 1;
                string yeniFisNo = i.ToString().PadLeft(6, '0');
                return yeniFisNo;
            }

     

    alattin alattin (17125)
    5 yıl önce cevaplandı

    • Teşekkür ederim. Deneyip sonucu haber vereceğim. dyildiz 5 yıl önce

    0

    private void İsKarti_Load(object sender, EventArgs e)
            {

                SqlConnection Numarator = new SqlConnection(SQLConnect.conn);
                Numarator.Open();
                SqlCommand cmd = new SqlCommand("SELECT TOP (1) FICHENO FROM DY_JOB ORDER BY LOGICALREF DESC");
                cmd.Connection = Numarator;
                string no = cmd.ExecuteScalar().ToString();
                Numarator.Close();
                string yeniFisNo = GetYeniFisNumarasi(no);
                tbİTFisNo.Text = yeniFisNo;
                dtpİstanimlamaTarih.DateTime = DateTime.Now.Date;
                if (Sref > 0)
                {
                    Goster();
                }

            }

            public string GetYeniFisNumarasi(string fisNo)
            {
                int i = Int32.Parse(fisNo) + 1;
                string yeniFisNo = i.ToString().PadLeft(6, '0');
                return yeniFisNo;
            }

     

     

    Bu şekilde sorun çözülmüştür.

    dyildiz dyildiz (183)
    5 yıl önce cevaplandı

    • Veritabanından tek bir değer döndüreceksen ExecuteScaler kullanman daha doğru olacaktır ki sen de kodunu bu şekilde değiştirmişsin. alattin 5 yıl önce
    • İlginizden dolayı teşekkür ederim sağolun. dyildiz 5 yıl önce
    üyelik gerektirir

    Cevap yazabilmek için üye girişi yapmalısınız.

    Eğer uzmanim.net üyesiyseniz giriş yapabilirsiniz: üye girişi yap
    uzmanim.net'e üye olmak çok kolaydır: hemen kayıt ol