Problem şu;

Program 3 kere ücretsiz çalışacak ve 4. açılışta

KEY Sormasını istiyorum Database daha önce girilen KEY'le eşleşirse giriş yapsın.

Girilen KEY Doğru ise Zaten Bir daha sormasına gerek yok.




Veritabanını bu şekilde oluşturdum.

    [*]key_code ile key_user birbirine eşit olursa otomatik giriş yapılmaktadır.
    [*]key_hak 0dan büyük olduğunda ücretsiz girişleri sağlamaktadır.
    [*]key_hak 0a eşit olduğunda ücretsiz giriş yapılamamaktır



Lisanssız giriş yapıldığında giriş haklarını mesaj kutusu olarak göstermektedir. Diğer form açılmayacaktır.


Ücretsiz giriş hakları dolduğunda giriş yapılmaya çalışılması durumunda alınan hata label'a yansıtılmıştır.


Projeye lisans kodu ile giriş yaptıktan sonra ki girişlerde lisans kodu sormadan key_code ile key_user birbirine eşit olduğunu sorgulayarak otomatik olarak diğer form açılmaktadır.


Girişler sonucunda açılacak olan form

İncelemeniz için İNDİRME LİNK
DOSYA TC

Sadece Kodlar

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.OleDb;

namespace CDKeyV2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
OleDbConnection con;
OleDbCommand cmd;
TestForm test = new TestForm();
public void veritabani()
{
con = new OleDbConnection("Provider=Microsoft.ACE.Oledb.12.0;Data Source=cdkey.accdb");

}
public void kontrol()
{



int kayitsayisi = -1;

con.Open();

cmd = new OleDbCommand("Select count (*) from cdkey WHERE key_code = '" + textBox1.Text + "' OR key_hak > 0" , con);
kayitsayisi = Convert.ToInt32(cmd.ExecuteScalar());
con.Close();
if (kayitsayisi > 0)
{
girishakki();
Basariligiris();
aktivekayit();
Formgetir();
// label2.Text = "Giriş Yapabilir : " + kayitsayisi;
}else
{
girishakki();
}



}
public void girishakki()
{

con.Open();
cmd = new OleDbCommand("SELECT key_hak FROM cdkey");
cmd.Connection = con;
string girishakki = cmd.ExecuteScalar().ToString();
con.Close();
if(Convert.ToInt32(girishakki) < 0 )
{
// girishakki = "0";

MessageBox.Show("Aktivasyon Başarılı");
return;
}

if (Convert.ToInt32(girishakki) > 0)
{
MessageBox.Show("Kalan Giriş Hakkınız : " + girishakki , "Ücretsiz Hakkınız",MessageBoxButtons.OK , MessageBoxIcon.Information);
return;
}
if (Convert.ToInt32(girishakki) == 0) {

label2.Text = "Ücretsiz Kayıt Hakkınız Doldu";
return;
}

}
public void aktivekayit()
{
con.Open();
cmd.Connection = con;
cmd.CommandText = "update cdkey set key_user = '" + textBox1.Text + "'";
cmd.ExecuteNonQuery();
con.Close();
}
public void direkgiris()
{
int kayitsayisi = -1;

con.Open();

cmd = new OleDbCommand("Select count (*) from cdkey WHERE key_code = key_user", con);
kayitsayisi = Convert.ToInt32(cmd.ExecuteScalar());
con.Close();
if (kayitsayisi > 0)
{
Basariligiris();
MessageBox.Show("Premium Hesap");
con.Open();
cmd.Connection = con;
cmd.CommandText = "update cdkey set key_hak = 3";
cmd.ExecuteNonQuery();
con.Close();
Formgetir();
}

}
public void Basariligiris()
{
con.Open();
cmd.Connection = con;
cmd.CommandText = "update cdkey set key_hak = key_hak -1";
cmd.ExecuteNonQuery();
con.Close();
}
public void Formgetir()
{
this.Opacity = 0.0f;

this.ShowInTaskbar = false;
test.Show();
}


private void Form1_Load(object sender, EventArgs e)
{

veritabani();
direkgiris();

}

private void button1_Click(object sender, EventArgs e)
{
veritabani();
kontrol();

}
}
}