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)
2 hafta ö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 (13525)
2 hafta önce cevaplandı

  • Teşekkür ederim. Deneyip sonucu haber vereceğim. dyildiz 2 hafta ö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)
1 hafta ö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 1 hafta önce
  • İlginizden dolayı teşekkür ederim sağolun. dyildiz 1 hafta ö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