C# Form'dan iyi derecede anlayan var mı?
Teknoseyir gündemi
#SonyVaio#triggeraction#BlackSabbath#Switchback#Nokia#BitLocker#HaftalıkGündemeMalzeme#Cyberpunk2077#TürkTelekom#i5Son bir saat içinde 206 ziyaretçi, 85 kayıtlı kullanıcı giriş yaptı.
- © 2025 TeknoSeyir
- Hakkımızda
- İletişim
- Kullanım Koşulları
- Gizlilik Politikası
- Sosyal Ağ Kuralları
- RAM desteği bilendenal.com tarafından sağlanmaktadır.
- Sunucu desteği DGN Teknoloji tarafından
sağlanmaktadır.
yaz derdini
Şu kodla barkod numarasına göre veritabanından textboxlara veri çekiyorum:
baglanti = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=dbPandora.accdb");
baglanti.Open();
OleDbCommand komut = new OleDbCommand("SELECT * FROM Kitap where BarkodNo = @barkod", baglanti);
komut.Connection = baglanti;
komut.Parameters.AddWithValue("@barkod", txtKayitBarkodAra.Text);
OleDbDataReader dr = komut.ExecuteReader();
if (dr.Read())
{
txtKayitKitapAdi.Text = dr["KitapAdi"].ToString();
txtKayitKalanAdet.Text = dr["StokAdedi"].ToString();
}
else if (txtKayitBarkodAra.Text == "")
{
txtKayitKitapAdi.Text = "";
txtKayitKalanAdet.Text = "";
}
baglanti.Close();
Şu kodla da stok adedini güncelliyorum:
baglanti.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=dbPandora.accdb";
baglanti.Open();
OleDbCommand komut = new OleDbCommand();
komut.Connection = baglanti;
komut.CommandText ="update Kitap set StokAdedi = @adet";
komut.Parameters.AddWithValue("@adet", Convert.ToInt32(txtKayitAdetEkle.Text));
MessageBox.Show("Stok Bilgisi Güncellendi.", "Sistem Mesajı");
txtKayitBarkodAra.Text = "";
txtKayitKitapAdi.Text = "";
txtKayitKalanAdet.Text = "";
txtKayitAdetEkle.Text = "";
komut.ExecuteNonQuery();
baglanti.Close();
Ama stok adedini güncellediğimde tablodaki bütün stok adetleri değişiyor. Ben barkoda göre stok adedini nasıl değiştirebilirim? @usb
komut.CommandText kısmına where eklemelisin ki hangi barkod değerinden stok değiştirdiğini anlasın
örnek ”update Kitap set StokAdedi = @adet where BarkodNo = @barkod”
@xox sizin sqlde bir sıkıntınız var.
Ben onu where @ barkod olarak yazmıştım hata vermişti. Sizin dediğiniz gibi yazdım şöyle bir hata verdi:
'@adet BarkodNo = @barkod' sorgu ifadesi içindeki Sözdizimi hatası (eksik işleç)
where yazmamışım araya 🙂 where yazınca
Gerekli bir veya daha fazla parametre için girilen değer yok. diye bir hata veriyor. Biri bitiyor biri başlıyor bu nedir ya 🙂 @usb
ben kod tam bu şekilde olacak dememiştim sadece fikir açısından yazmıştım. sen parametrelere değer vererek giriyorsun ikinci kısmında @adet parametresi gibi ayrıca @barkod parametresi eklemek gerek.
komut.Parameters.AddWithValue(“@barkod”, txtKayitBarkodAra.Text);
komut.CommandText =”update Kitap set StokAdedi = @adet where BarkodNo = @barkod”;
komut.Parameters.AddWithValue(“@adet”, Convert.ToInt32(txtKayitAdetEkle.Text));
komut.Parameters.AddWithValue(“@barkod”, txtKayitBarkodAra.Text);
yani bu şekilde olmalı bence
@xox
Çok sağolasın hocam. Dediğini yaptım çalıştı.
SQL'de çıkarma işlemini sorsam yorar mıyım seni ? 🙂 @usb
update Kitap set StokAdedi=StokAdedi-@adet where BarkodNo = @barkod
StokAdedi 5 diyelim
@adet ise çıkarılacak olan 2 diyelim
StokAdedi=5-2
StokAdedi son olarak 3 kalır
Hocam ben satış yaptığımda txtStsAdet.Text'de girilen değeri Kitap tablosunda ilgili barkoda göre stok adedinden çıkartmam ve yeni stok adedi değerini veritabanına eklemem lazım. @usb
Şu satış tablosuna kayıt ekleme kodu:
baglanti = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=dbPandora.accdb");
baglanti.Open();
OleDbCommand komut = new OleDbCommand();
komut.Connection = baglanti;
komut.CommandText = "INSERT into Satis(PersonelNo,BarkodNo,KitapAdi,Adet,SatisTuru,SatisTarihi,Iskonto,KDV,Fiyat,OdemeTuru)" + "VALUES('" + Convert.ToInt32(txtStsPersonelNo.Text) + "','" + Convert.ToInt32(txtStsBarkodNo.Text) + "','" + txtStsKitapAdi.Text + "','" + Convert.ToInt32(txtStsAdet.Text) + "','" + cboxStsSatisTuru.Text + "','" + Convert.ToString(dtpStsSatisTarihi.Text) + "','" + Convert.ToInt32(txtStsIskonto.Text) + "','" + Convert.ToInt32(txtStsKDV.Text) + "','" + Convert.ToInt32(txtStsToplamTutar.Text) + "','" + cboxStsOdemeSec.Text + "')";
komut.ExecuteNonQuery();
if (MessageBox.Show("Ürün Satıldı. Fatura yazdırmak ister misiniz?", "Sistem Mesajı", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.Yes)
{
//pdFatura.DefaultPageSettings.Landscape = true;
ppdFatura.ShowDialog();
}
txtStsPersonelNo.Text = "";
txtStsBarkodNo.Text = "";
txtStsKitapAdi.Text = "";
txtStsAdet.Text = "";
cboxStsSatisTuru.Text = "";
cboxStsOdemeSec.Text = "";
txtStsIskonto.Text = "";
txtStsKDV.Text = "";
txtStsToplamTutar.Text = "";
baglanti.Close();
kitap satıldıktan sonra bir sorgu çalıştırman gerekiyor gereken de 2 değer biri kitabın barkodu
2. ise satılan miktar. "stokadetine =stokadeti - satılan miktarı" yazmış oluyorsun.
sql =”update Kitap set StokAdedi = StokAdedi-satilanmiktar where BarkodNo = @barkod”;
komut.Parameters.AddWithValue(“@satilanmiktar”, Convert.ToInt32(txtSatilanMiktar.Text));
komut.Parameters.AddWithValue(“@barkod”, txtKayitBarkodAra.Text);
temel ve basit olan prensip budur.
Satis sorgusunda neden parametreler kullanmadın da textbox textbox yazdın. Parametreler şeklinde yazman daha anlaşılır olur.
Satış kodu ilk yazdığım koddu ona şimdi bakınca farkettim. Sonra değiştirdim senin dediğin gibi. @usb
yazdığım kodlar çalışmayabilir ben fikir vermesi açısından yazıyorum. Şu an iş yerinden bu kadar oluyor 🙂 sizin bu ödev mi yoksa
Emin olun fikir verseniz bile yetiyor. Çok sağolun sizin sayenizde büyük aşama kaydettim. Evet final ödevi basit bir şey yapıyorum. Ama çevremde bilen olmadığından internetten araştırarak ancak bu kadar oluyor 🙂 @usb