C# Otomatik fiş numarası arttırma

dyildiz (183) 4 yıl önce sordu

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.

Toplam 2 cevap


alattin (16999) 4 yıl önce cevapladı

Şö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;
        }

 

dyildiz 4 yıl önce

Teşekkür ederim. Deneyip sonucu haber vereceğim.

dyildiz (183) 4 yıl önce cevapladı

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.

alattin 4 yıl önce

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.

dyildiz 4 yıl önce

İlginizden dolayı teşekkür ederim sağolun.