lostyazilim
tr.link

Visual Studio C# Sql ile Giriş Form hatası.

2 Mesajlar 760 Okunma
lstbozum
tr.link

mesut33 mesut33 WM Aracı Kullanıcı
  • Üyelik 15.11.2016
  • Yaş/Cinsiyet 32 / E
  • Meslek Yönetici
  • Konum Mersin
  • Ad Soyad M** U**
  • Mesajlar 153
  • Beğeniler 44 / 11
  • Ticaret 0, (%0)
Merhaba Arkadaşlar, Şöyle bir sorunum var açıklama biraz uzun gelebilir, kusura bakmayın,

Olay şu, Form açıldığında Bilgisayarın cpu seri numarasını direk
" textKullaniciPC.Text = CPUSeriNoCek().ToString();" yazıyor,
buraya kadar sorun yok, ben bu textKullaniciPC.Text'e gelen cpu numasınını veritabanına update etmek istiyorum, KullanıcıAdına göre bunuda yapıyor,
ama giriş yap dediğimde "Kullanıcı Adı veya Şifre Hatalı!"diyor,

Yapmak istediğim;
1.Neden Bilgiler doğru olduğu halde giriş yapmıyor?
2.Her Form açılışında veritabanında cpu seri no varsa update yapılmasın.
3.(textKullaniciPC.Text) kullanıcı buna işlem yapmasını istemiyorum yani
readonly true olmasını istiyorum.

Yardımcı olacak arkadaşa şimdiden teşekkür ederim.
kod üzerinde düzenleyip yardımcı olursanız çok sevinirim.



public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
textKullaniciPC.Text = CPUSeriNoCek().ToString();
}
public static String CPUSeriNoCek()
{
String processorID = "";
ManagementObjectSearcher searcher = new ManagementObjectSearcher("Select * FROM WIN32_Processor");
ManagementObjectCollection mObject = searcher.Get();

foreach (ManagementObject obj in mObject)
{
processorID = obj["ProcessorId"].ToString();
}

return processorID;
}
MySqlConnection baglanti = new MySqlConnection("Server=localhost; Database=pro; uid=pro; password=123456");

private void BtnGiris_Click_1(object sender, EventArgs e)
{

try
{
baglanti.Open();
MySqlCommand girisYap = new MySqlCommand("select * from kullanicilar where KullaniciAdi=@Kadi && KullaniciSifre=@KSifre && KullaniciMail=@Kmail and KullaniciPC=@Kpc", baglanti);

girisYap.CommandText = "update kullanicilar set KullaniciPC='" + textKullaniciPC.Text + "'where KullaniciMail=@Kadi";

girisYap.Parameters.AddWithValue("@Kadi", textKullaniciAdi.Text);
girisYap.Parameters.AddWithValue("@KSifre", textKullaniciSifre.Text);
girisYap.Parameters.AddWithValue("@Kmail", textKullaniciMail.Text);
girisYap.Parameters.AddWithValue("@Kpc", textKullaniciPC.Text);
girisYap.ExecuteNonQuery();
girisYap.Dispose();
MySqlDataReader oku = girisYap.ExecuteReader();




if (oku.Read())
{

Form yeniform = new Form2();
yeniform.Show();
this.Hide();
Form2 forum2 = (Form2)Application.OpenForms["Form2"];
forum2.Useradi.Text = textKullaniciAdi.Text;
}
else
{
MessageBox.Show("Kullanıcı Adı veya Şifre Hatalı!", "Giriş Sistemi", MessageBoxButtons.OK, MessageBoxIcon.Error);

}

baglanti.Close();

}
catch (Exception)
{



}


}
 

 

wmaraci
reklam

Decimas Decimas WM Aracı Kullanıcı
  • Üyelik 19.04.2015
  • Yaş/Cinsiyet 26 / E
  • Meslek Developer
  • Konum İstanbul Avrupa
  • Ad Soyad E** E**
  • Mesajlar 820
  • Beğeniler 1 / 302
  • Ticaret 1, (%100)
Bu tip durumlarda önceliklerin olmalı direkt olaya dalamazsın. Kullanıcı veritabanında var mı yok mu select query ile kontro let, eğer yoksa giriş kısmını varsa deceği pencereyi aç. Update'lik bir şey göremedim ben. Giriş kısmında ukllanıcıyı kaydetmen gerek.

Kodun hatalı çünkü veritabanına iki komut gönderiyorsun select ve ardından çalıştırmadan update, iyide veritabanına kayıt yaptın mı? Kaydı olmayan şeyi önce seçip sonra iptal edip güncellemye çalışıyorsun ama güncellenecek bir şey bulunamadığı için else bloğu çalışıyor. CRUD işlemlerini ve SQL komutlarını öğrenmen gerek.
ulas

kişi bu mesajı beğendi.

no time for caution
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al