Çözüldü C# butona günde sadece bir kez tıklama nasıl yapılır?

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

THE_YORULMAZZZ

Hectopat
Katılım
26 Şubat 2021
Mesajlar
463
Makaleler
1
Çözümler
7
C# da bir projem var ve bu projede veritabanına veri eklemek için bir butonum var ancak günde yalnızca bir kez veri eklemesi gerek bu yüzden butona günde sadece bir kez tıklanma izni vermem gerek. 2. Kez tıklanmaması gerekiyor, yardımcı olur musunuz?
 
Çözüm
Hocam amacınızı anladım da Date'in kullanıldığı yer yok attığınız kodlarda if içerisine eklenmesi gerekmezmi.
Gerek yok hocam, şöyle daha detaylı bir kod daha yazdım buna da bakabilirsiniz.


C#:
using System;
using System.Windows.Forms;

public partial class Form1 : Form
{
    // Bugünün tarihi
    private DateTime today = DateTime.Today;
    // Bugünkü tıklama sayısı
    private int clickCount = 0;

    public Form1()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        // Tarih kontrol et.
        if (today != DateTime.Today)
        {
            // Tarih farklıysa, tıklama sayısı sıfırla
            clickCount = 0;
            today = DateTime.Today;
        }

        // Tıklama sayısı kontrol et.
        if (clickCount < 1)
        {
            // Tıklama sayısı 1 den azsa, veri ekle
            // veritabanına veri ekleme kodu
            clickCount++;
        }
        else
        {
            // Tıklama sayısı 1 den fazla ise, uyarı ver
            MessageBox.Show("Bugün için veri ekleme izniniz doldu.");
        }
    }
}
Veri tabanına veriyi eklerken işlem zamanını da ekle. Sonra program açılırken işlem zamanını şu anki zamanla karşılaştır. Eğer zaman 1 günü geçmemişse butonu devre dışı bırak.
 
C# da bir projem var ve bu projede veritabanına veri eklemek için bir butonum var ancak günde yalnızca bir kez veri eklemesi gerek bu yüzden butona günde sadece bir kez tıklanma izni vermem gerek. 2. kez tıklanmaması gerekiyor, yardımcı olur musunuz?

Veri tabanı kullanman gerekebilir butona tıkladıgında metot çalıştır ve veri tabanına o günde ait veriyi kaydet. Butona tıkladıktan sonra ekstra bir tane daha metot çalıştır oda eğer col oluşmuşsa buttonun enabled özelliğini kapatsın.
 
Veri tabanı kullanman gerekebilir butona tıkladıgında metot çalıştır ve veri tabanına o günde ait veriyi kaydet. Butona tıkladıktan sonra ekstra bir tane daha metot çalıştır oda eğer col oluşmuşsa buttonun enabled özelliğini kapatsın.

Hocam zaten veritabanına eklenen verilerim tarih verisi olan veriler.
 
C#:
string date = DateTime.Now.ToString();

Zamanı bu şekilde alabilirsiniz. Sonra diğer veriyi ekler gibi veri tabanına ekleyip ardından şu anki değerle veri tabanında yer alan değeri karşılaştıracaksınız.

Tabii bu şekilde Bypass edilebilir. Global zaman dilimlerinden zaman verisini alsanız daha iyi olur.
 
C#:
string date = DateTime.Now.ToString();

Zamanı bu şekilde alabilirsiniz. Sonra diğer veriyi ekler gibi veri tabanına ekleyip ardından şu anki değerle veri tabanında yer alan değeri karşılaştıracaksınız.

Tabii bu şekilde bypass edilebilir. Global zaman dilimlerinden zaman verisini alsanız daha iyi olur.

Hocam bunu daha önce denedim ancak olmadı.

Stackoverflow bu konuyu inceliyebilirsiniz.

Hocam burada saatlik işlem olarak yaptırmış ancak ben günlük olarak yaptırmaya çalışıyorum yani saat 23.00 12-01-2023 ise ve butona basmışsam saat 00.01 13-01-2023 olana kadar buton kilitli kalacak.
 
Hocam bunu daha önce denedim ancak olmadı.

Hocam burada saatlik işlem olarak yaptırmış ancak ben günlük olarak yaptırmaya çalışıyorum yani saat 23.00 12-01-2023 ise ve butona basmışsam saat 00.01 13-01-2023 olana kadar buton kilitli kalacak.



Hocam sayfanın biraz altında bu var.
 

Dosya Ekleri

  • 1673551314072.png
    1673551314072.png
    24,1 KB · Görüntüleme: 56
Hocam sayfanın biraz altında bu var.

Hocam ne yalan söyleyeyim bunu tam anlayamadım. Biraz geri kaldım tarih ve veri tabanı konularında gelişmeye çalışıyorum.

Hocam sayfanın biraz altında bu var.

C#:
public class WaitTimer : MonoBehaviour.
{
 public float timeToWait;
 private currentWaitTime;
 private bool checkTime;

 void Awake()
 {
 ResetTimer();
 }
 void Update()
 {
 if (checkTime)
 {
 currentWaitTime -= Time.deltaTime;
 if (currentWaitTime < 0)
 {
 TimerFinished();
 checkTime = false;
 }
 }
 }

 public void ResetTimer()
 {
 currentWaitTime = timeToWait;
 checkTime = true;
 }
 void TimerFinished()
 {
 // Add Code here for timer finishing.
 // Like activating a button.
 }
}

Hocam şöyle bir kod yazdım ancak timer olarak kullandım bunu gün olarak nasıl ayarlayabilirim?

C#:
string date = DateTime.Now.ToString();

Zamanı bu şekilde alabilirsiniz. Sonra diğer veriyi ekler gibi veri tabanına ekleyip ardından şu anki değerle veri tabanında yer alan değeri karşılaştıracaksınız.

Tabii bu şekilde Bypass edilebilir. Global zaman dilimlerinden zaman verisini alsanız daha iyi olur.
C#:
string date = DateTime.Now.ToString();

private void button1_Click(object sender, EventArgs e)
{
    if(button.visible=true==date)
    {
        //veri ekleme kodları
    }
}

Şu tarzda bir şey yazdım ama doğruluğundan şüpheliyim hocam inceleyebilir misiniz?

Burada anlayamadığım şey önce butona basılacak ardından buton kilitlenecek bunu nasıl yazacağımı çözemedim
 
Son düzenleme:

Technopat Haberler

Yeni konular

Geri
Yukarı