lostyazilim

C# Veritabanına Bağlanarak Giriş Yapma

10 Mesajlar 1.769 Okunma
lstbozum
smsonayhizmeti

Anarchosa Anarchosa WM Aracı Kullanıcı
  • Üyelik 23.04.2015
  • Yaş/Cinsiyet 32 / E
  • Meslek Akademik
  • Konum Ankara
  • Ad Soyad M** K**
  • Mesajlar 860
  • Beğeniler 47 / 49
  • Ticaret 2, (%100)
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.


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 WindowsFormsApp1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

OleDbConnection con;
OleDbDataAdapter da;
OleDbCommand cmd;
DataSet ds;
string key;
string date;
public static string sonuc;


public void veritabani()
{
try
{
con = new OleDbConnection("Provider=Microsoft.ACE.Oledb.12.0;Data Source=cdkey.accdb");
con.Open();
//MessageBox.Show("Veritabanına bağlandınız");
}
catch (Exception e)
{

MessageBox.Show("Veritabanına bağlanırken hata oluştu" + e);
}


}



public void User()
{
OleDbCommand komut;
OleDbDataReader oku;


try
{

komut = new OleDbCommand();
komut.CommandText = "Select * from users where user_id =1";
komut.Connection = con;
oku = komut.ExecuteReader();
while (oku.Read())
{

key = oku[1].ToString();
date = oku[2].ToString();
}
}
catch (OleDbException ex)
{
MessageBox.Show(ex.Message);
}
}


public void Keys()
{
OleDbCommand komut;
OleDbDataReader oku;

try
{

komut = new OleDbCommand();
komut.CommandText = "Select count(*) from cdkeys where key_number = '"+key+"' and key_date > '"+date+"'";
komut.Connection = con;
oku = komut.ExecuteReader();
while (oku.Read())
{

sonuc = oku[0].ToString();


}
con.Close();
}
catch (OleDbException ex)
{
MessageBox.Show(ex.Message);
}

con.Close();
}

public void Kontrol()
{
if(sonuc == 1.ToString())
{

MessageBox.Show("Sisteme Kayitli");

Form2 form2 = new Form2();
form2.Show();
this.Size = new Size(0, 0);
Opacity = -999;

return;
}if(sonuc == 0.ToString())
{
MessageBox.Show("CD Key Süreniz Doldu ya da lisans key girmediniz.");
return;
}
}

public void Lisanskey()
{

cmd = new OleDbCommand();
//con.Open();
cmd.Connection = con;
cmd.CommandText = "update users set user_key='" + user_newkey + "', user_lasttime ='" + tumparcalar + "' where user_id= 1";
cmd.ExecuteNonQuery();
con.Close();
veritabani();
}









string tumparcalar;
string user_newkey;
private void Form1_Load(object sender, EventArgs e)
{

timer1.Start();
veritabani();

User();
Keys();

Kontrol();
string[] parcalar;

parcalar = label1.Text.Split('.');

tumparcalar = parcalar[2] + parcalar[1] + parcalar[0];

user_newkey = textBox1.Text;




}


private void button1_Click(object sender, EventArgs e)
{





veritabani();

string[] parcalar;

parcalar = label1.Text.Split('.');

tumparcalar = parcalar[2] + parcalar[1] + parcalar[0];
user_newkey = textBox1.Text;
Lisanskey();
User();
Keys();
Kontrol();




}
private void timer1_Tick(object sender, EventArgs e)
{
label1.Text = DateTime.Now.ToShortDateString();
}
}
}
 

 

wmaraci
reklam

onur0061 onur0061 WM Aracı Kullanıcı
  • Üyelik 31.10.2017
  • Yaş/Cinsiyet 24 / E
  • Meslek Yazılımcı
  • Konum Trabzon
  • Ad Soyad O** I**
  • Mesajlar 347
  • Beğeniler 86 / 77
  • Ticaret 8, (%100)
şuan pc başında değilim ancak bilgisayarımda yapmış olduğum projedeki kodları seninle paylaşırım akşama halledersin
Anarchosa

kişi bu mesajı beğendi.

ulas ulas C# & ASP.NET Kullanıcı
  • Üyelik 25.07.2016
  • Yaş/Cinsiyet 28 / E
  • Meslek Full Stack Developer
  • Konum Diğer
  • Ad Soyad U** K**
  • Mesajlar 1403
  • Beğeniler 404 / 404
  • Ticaret 18, (%100)
Eğer CDKEY doğruysa yeni bir kayıt oluşturun(insert) ve bir daha giriş yapıldığında yeni oluşturulan kayıt varsa CDKEY sormasın.
Anarchosa

kişi bu mesajı beğendi.

technovenue.com

Anarchosa Anarchosa WM Aracı Kullanıcı
  • Üyelik 23.04.2015
  • Yaş/Cinsiyet 32 / E
  • Meslek Akademik
  • Konum Ankara
  • Ad Soyad M** K**
  • Mesajlar 860
  • Beğeniler 47 / 49
  • Ticaret 2, (%100)

ulas2016 adlı üyeden alıntı

Eğer CDKEY doğruysa yeni bir kayıt oluşturun(insert) ve bir daha giriş yapıldığında yeni oluşturulan kayıt varsa CDKEY sormasın.


Aynen böyle istiyorum.
 

 

wmaraci
wmaraci

ulas ulas C# & ASP.NET Kullanıcı
  • Üyelik 25.07.2016
  • Yaş/Cinsiyet 28 / E
  • Meslek Full Stack Developer
  • Konum Diğer
  • Ad Soyad U** K**
  • Mesajlar 1403
  • Beğeniler 404 / 404
  • Ticaret 18, (%100)
Anarchosa Zaten CDKEY var mı yok mu kontrol ettiriyorsunuz,

if (textBox1.Text.ToString() == oku["keys"].ToString())
{

}

Bu şartın içerisine insert komutunu yazıp yeni bir tablo da veya sütunda kayıt oluşturun.

Başka bir select sorgusu yazarak bu sefer yeni kaydın olup olmadığını kontrol ettirin. Zor değil.
Anarchosa

kişi bu mesajı beğendi.

technovenue.com

Anarchosa Anarchosa WM Aracı Kullanıcı
  • Üyelik 23.04.2015
  • Yaş/Cinsiyet 32 / E
  • Meslek Akademik
  • Konum Ankara
  • Ad Soyad M** K**
  • Mesajlar 860
  • Beğeniler 47 / 49
  • Ticaret 2, (%100)

ulas2016 adlı üyeden alıntı

Anarchosa Zaten CDKEY var mı yok mu kontrol ettiriyorsunuz,

if (textBox1.Text.ToString() == oku["keys"].ToString())
{

}

Bu şartın içerisine insert komutunu yazıp yeni bir tablo da veya sütunda kayıt oluşturun.

Başka bir select sorgusu yazarak bu sefer yeni kaydın olup olmadığını kontrol ettirin. Zor değil.


Dediğini anladım.

yeni kaydın olup olmadığını kontrol ettirin.

bu sorgu nasıl olacak yeni kaydın olup olmadığı bu sorguyu nasıl yazacağımı bilemedim.
 

 

ulas ulas C# & ASP.NET Kullanıcı
  • Üyelik 25.07.2016
  • Yaş/Cinsiyet 28 / E
  • Meslek Full Stack Developer
  • Konum Diğer
  • Ad Soyad U** K**
  • Mesajlar 1403
  • Beğeniler 404 / 404
  • Ticaret 18, (%100)
Örneğin bu sorguda CDKEY'in olup olmadığı kontrol ettirilmiş.

("SELECT * from sistem WHERE keys='" + textBox1.Text.ToString() + "'", cnn);



Sorguyu bu sefer CDKEY girişinin doğru yapıldığına dair oluşturulan kayıt için yapacaksınız.

Örnek:

("SELECT * from anahtarOnay WHERE giris=1", cnn);
 

 

technovenue.com

nGinY nGinY PHP - C# Help Kit =) Kullanıcı
  • Üyelik 07.06.2014
  • Yaş/Cinsiyet 26 / E
  • Meslek Öğrenci
  • Konum Eskişehir
  • Ad Soyad E** Y**
  • Mesajlar 80
  • Beğeniler 7 / 17
  • Ticaret 3, (%100)

Benim yazdıklarınızdan çıkarttığım mantık bu şekilde

Sisteme giriş yapılırken CD key yoksa , tarihi geçmişse ve boşsa alınan hata


Hataya tamam dedikten sonra cd key girme ekranı.


Hatalı CD Key girişinde alınan hata


CD Keylerin tutulduğu tablo


Belirlediğimiz key numarasını programımıza giriyoruz ve doğru olduğunu belirtiyor Tamam butonuna basarak bizi Form2 ye yönlendiriyor.


Form 2



Veritabanında kullanıcımızın verileri 3 sütundan oluşuyor.
1-) ID
2-) Girdiği Serial Numarası
3-) Giriş yaptığı tarih (Otomatik alıyor ve cdkey tarihini geçtiği zaman hata veriyor.)


Artık kullanıcı verisi veritabanında kayıtlı olduğu için ekrana gelmeden form2 ye aktarım yapıyor.

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 WindowsFormsApp1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

OleDbConnection con;
OleDbDataAdapter da;
OleDbCommand cmd;
DataSet ds;
string key;
string date;
public static string sonuc;


public void veritabani()
{
try
{
con = new OleDbConnection("Provider=Microsoft.ACE.Oledb.12.0;Data Source=cdkey.accdb");
con.Open();
//MessageBox.Show("Veritabanına bağlandınız");
}
catch (Exception e)
{

MessageBox.Show("Veritabanına bağlanırken hata oluştu" + e);
}


}



public void User()
{
OleDbCommand komut;
OleDbDataReader oku;


try
{

komut = new OleDbCommand();
komut.CommandText = "Select * from users where user_id =1";
komut.Connection = con;
oku = komut.ExecuteReader();
while (oku.Read())
{

key = oku[1].ToString();
date = oku[2].ToString();
}
}
catch (OleDbException ex)
{
MessageBox.Show(ex.Message);
}
}


public void Keys()
{
OleDbCommand komut;
OleDbDataReader oku;

try
{

komut = new OleDbCommand();
komut.CommandText = "Select count(*) from cdkeys where key_number = '"+key+"' and key_date > '"+date+"'";
komut.Connection = con;
oku = komut.ExecuteReader();
while (oku.Read())
{

sonuc = oku[0].ToString();


}
con.Close();
}
catch (OleDbException ex)
{
MessageBox.Show(ex.Message);
}

con.Close();
}

public void Kontrol()
{
if(sonuc == 1.ToString())
{

MessageBox.Show("Sisteme Kayitli");

Form2 form2 = new Form2();
form2.Show();
this.Size = new Size(0, 0);
Opacity = -999;

return;
}if(sonuc == 0.ToString())
{
MessageBox.Show("CD Key Süreniz Doldu ya da lisans key girmediniz.");
return;
}
}

public void Lisanskey()
{

cmd = new OleDbCommand();
//con.Open();
cmd.Connection = con;
cmd.CommandText = "update users set user_key='" + user_newkey + "', user_lasttime ='" + tumparcalar + "' where user_id= 1";
cmd.ExecuteNonQuery();
con.Close();
veritabani();
}









string tumparcalar;
string user_newkey;
private void Form1_Load(object sender, EventArgs e)
{

timer1.Start();
veritabani();

User();
Keys();

Kontrol();
string[] parcalar;

parcalar = label1.Text.Split('.');

tumparcalar = parcalar[2] + parcalar[1] + parcalar[0];

user_newkey = textBox1.Text;




}


private void button1_Click(object sender, EventArgs e)
{





veritabani();

string[] parcalar;

parcalar = label1.Text.Split('.');

tumparcalar = parcalar[2] + parcalar[1] + parcalar[0];
user_newkey = textBox1.Text;
Lisanskey();
User();
Keys();
Kontrol();




}
private void timer1_Tick(object sender, EventArgs e)
{
label1.Text = DateTime.Now.ToShortDateString();
}
}
}

[B]NOT: Kodları konuyu görünce yazdım basit mantığı budur geliştirilebilir.


Programın kodları ve veritabanı:
Tıkla ve İndir

[/B]

Anarchosa

kişi bu mesajı beğendi.

-----

Anarchosa Anarchosa WM Aracı Kullanıcı
  • Üyelik 23.04.2015
  • Yaş/Cinsiyet 32 / E
  • Meslek Akademik
  • Konum Ankara
  • Ad Soyad M** K**
  • Mesajlar 860
  • Beğeniler 47 / 49
  • Ticaret 2, (%100)
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.
 

 

nGinY nGinY PHP - C# Help Kit =) Kullanıcı
  • Üyelik 07.06.2014
  • Yaş/Cinsiyet 26 / E
  • Meslek Öğrenci
  • Konum Eskişehir
  • Ad Soyad E** Y**
  • Mesajlar 80
  • Beğeniler 7 / 17
  • Ticaret 3, (%100)

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();

}
}
}



 

 

-----
wmaraci
Konuyu toplam 8 kişi okuyor. (0 kullanıcı ve 8 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al