C# Form'dan iyi derecede anlayan var mı?

BeğenFavori PaylaşYorum yap
  • Noetics @noetics

    Ş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

  • Noetics @noetics

    SQL'de çıkarma işlemini sorsam yorar mıyım seni ? 🙂 @usb

    • gmail.com @gmail-com

      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

    • Noetics @noetics

      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

    • Noetics @noetics

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

    • gmail.com @gmail-com

      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.

    • Noetics @noetics

      Satış kodu ilk yazdığım koddu ona şimdi bakınca farkettim. Sonra değiştirdim senin dediğin gibi. @usb

    • gmail.com @gmail-com

      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

    • Noetics @noetics

      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