none
C# BARKOD OKUTARAK ÇAĞIRDIĞIM STOK KODUNA GÖRE BİRİM FİYATINI ÇAĞIRMA RRS feed

  • Soru

  • Merhaba;

    Yapmak istediğim işlemi dilim döndüğünce anlatmaya çalışacağım. Anlatırken bile biraz karışık bir durum.

    Yukarıda gördüğünüz resimdeki gibi barkod okutarak barkod numarasından TBLSTSABIT Tablomdan stok kodu ve stok adını çağırıp datagridviewe ekliyorum burda yapmak istediğim bu işlemle birlikte stok kodunu çağırdığımda başka bir tablomdan stok kodunun karşılığındaki birim fiyatınıda getirmek. Kod kısımlarım şu şekilde;

            private void barkod_KeyDown(object sender, KeyEventArgs e)
            {
                if (e.KeyCode == Keys.Enter)
                {
                    string connStr = "Server=ip;Database=veritabanı;Uid=SA;Pwd='şifre';";
                    SqlConnection conn = new SqlConnection(connStr);
                    conn.Open();
                    string sorgu = "SELECT * FROM TBLSTSABIT WHERE BARKOD1= '" + barkod.Text + "'";
                    SqlCommand cmd = new SqlCommand(sorgu, conn);
                    SqlDataReader cikti = cmd.ExecuteReader();
                    if (cikti.Read())
                    {
                        textBox1.Text = cikti["STOK_KODU"].ToString();
                        textBox2.Text = cikti["STOK_ADI"].ToString();
    
                        tablo.Rows.Add(textBox1.Text, textBox2.Text);
                        dataGridView1.DataSource = tablo;
                    }
                    else
                    {
                        MessageBox.Show("Barkod Numarası Bulunamadı.", "Uyarı", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                        barkod.Text = "";
                        barkod.Focus();
                    }
                    conn.Close();
    
                    if (e.KeyCode == Keys.Enter)
                    {
                        barkod.Focus();
                    }
                    barkod.Text = "";
                    textBox1.Text = "";
                    textBox2.Text = "";
                }

    Stok kodunun TBLSTHAR Tablomda karşılığı birim fiyatı var bunu BARKODU OKUTURKEN NASIL çekebilirim. Değerli yorumlarınızı bekliyorum. Şimdiden teşekkür ederim.

    1 Kasım 2018 Perşembe 12:15

Yanıtlar

  •         private void barkod_KeyDown(object sender, KeyEventArgs e)
            {
                if (e.KeyCode == Keys.Enter)
                {
                    DataTable tablo = new DataTable();
                    using (SqlConnection conn = new SqlConnection("Server=ip;Database=veritabanı;Uid=SA;Pwd='şifre';"))
                    {
                        using (SqlDataAdapter cmd = new SqlDataAdapter("SELECT TBLSABIT.*, TBLSTHAR.FIYAT FROM TBLSTSABIT LEFT JOIN TABLSTHAR ON TBLSABIT.STOK_KODU=TBLSTHAR.STOK_KODU WHERE BARKOD1=@barkod", conn))
                        {
                            cmd.SelectCommand.Parameters.AddWithValue("@barkod", barkod.Text);
                            cmd.Fill(tablo);
                        }
                    }
                    dataGridView1.DataSource = tablo;
                    if (tablo.Rows.Count > 0)
                    {
                        textBox1.Text = tablo.Rows[0]["STOK_KODU"].ToString();
                        textBox2.Text = tablo.Rows[0]["STOK_ADI"].ToString();
                        textBox3.Text = tablo.Rows[0]["FIYAT"].ToString();
                    }
                    else
                    {
                        MessageBox.Show("Bulunamadı.");
                    }
                    barkod.Clear();
                    barkod.Focus();
                }
            }

    Sorunuzun yanıtı bu ise "Yanıt olarak işaretle"yerek siz de forumun işleyişine katkıda bulununuz...


    1 Kasım 2018 Perşembe 13:05
  • Tablonuzda STHAR adında bir kolon yok. SQL ifadeyi yanlış yazmışsınız.

    Sorunuzun yanıtı bu ise "Yanıt olarak işaretle"yerek siz de forumun işleyişine katkıda bulununuz...

    • Yanıt Olarak İşaretleyen Toprak Volkan 2 Kasım 2018 Cuma 12:56
    2 Kasım 2018 Cuma 06:37
  • "SELECT TBLSABIT.*, TBLSTHAR.FIYAT FROM TBLSTSABIT LEFT JOIN TABLSTHAR ON TBLSABIT.STOK_KODU=TBLSTHAR.STOK_KODU WHERE BARKOD1=@barkod"

    ifadesinde TBLSABIT.* yerine görmek istediğiniz kolonları yazın.

    Örneğin;

    "SELECT TBLSABIT.STOK_KODU, TBLSABIT.BARKOD1, TBLSABIT_STOK_ADI, TBLSTHAR.FIYAT FROM TBLSTSABIT LEFT JOIN TABLSTHAR ON TBLSABIT.STOK_KODU=TBLSTHAR.STOK_KODU WHERE BARKOD1=@barkod"

    ifadesinde olduğu gibi.


    Sorunuzun yanıtı bu ise "Yanıt olarak işaretle"yerek siz de forumun işleyişine katkıda bulununuz...


    2 Kasım 2018 Cuma 08:29
  • ON etiketini unuttuğum için hata vermiş. Kodu düzenledim kullanabilirsiniz.

    Sorunuzun yanıtı bu ise "Yanıt olarak işaretle"yerek siz de forumun işleyişine katkıda bulununuz...

    • Yanıt Olarak İşaretleyen Toprak Volkan 2 Kasım 2018 Cuma 12:56
    2 Kasım 2018 Cuma 09:19

Tüm Yanıtlar

  • ilişkili olan tabloyu da sorgu içinde ilişkiyle birleştirerek ilgili tablodan çekebilirsin.
    1 Kasım 2018 Perşembe 12:51
  •         private void barkod_KeyDown(object sender, KeyEventArgs e)
            {
                if (e.KeyCode == Keys.Enter)
                {
                    DataTable tablo = new DataTable();
                    using (SqlConnection conn = new SqlConnection("Server=ip;Database=veritabanı;Uid=SA;Pwd='şifre';"))
                    {
                        using (SqlDataAdapter cmd = new SqlDataAdapter("SELECT TBLSABIT.*, TBLSTHAR.FIYAT FROM TBLSTSABIT LEFT JOIN TABLSTHAR ON TBLSABIT.STOK_KODU=TBLSTHAR.STOK_KODU WHERE BARKOD1=@barkod", conn))
                        {
                            cmd.SelectCommand.Parameters.AddWithValue("@barkod", barkod.Text);
                            cmd.Fill(tablo);
                        }
                    }
                    dataGridView1.DataSource = tablo;
                    if (tablo.Rows.Count > 0)
                    {
                        textBox1.Text = tablo.Rows[0]["STOK_KODU"].ToString();
                        textBox2.Text = tablo.Rows[0]["STOK_ADI"].ToString();
                        textBox3.Text = tablo.Rows[0]["FIYAT"].ToString();
                    }
                    else
                    {
                        MessageBox.Show("Bulunamadı.");
                    }
                    barkod.Clear();
                    barkod.Focus();
                }
            }

    Sorunuzun yanıtı bu ise "Yanıt olarak işaretle"yerek siz de forumun işleyişine katkıda bulununuz...


    1 Kasım 2018 Perşembe 13:05
  • Murat bey şöyle bir hata verdi neden kaynaklanabilir.



    2 Kasım 2018 Cuma 05:59
  • Tablonuzda STHAR adında bir kolon yok. SQL ifadeyi yanlış yazmışsınız.

    Sorunuzun yanıtı bu ise "Yanıt olarak işaretle"yerek siz de forumun işleyişine katkıda bulununuz...

    • Yanıt Olarak İşaretleyen Toprak Volkan 2 Kasım 2018 Cuma 12:56
    2 Kasım 2018 Cuma 06:37
  •         private void barkod_KeyDown(object sender, KeyEventArgs e)
            {
                if (e.KeyCode == Keys.Enter)
                {
                    DataTable tablo = new DataTable();
                    using (SqlConnection conn = new SqlConnection("Server=ip;Database=veritabanı;Uid=SA;Pwd='şifre';"))
                    {
                        using (SqlDataAdapter cmd = new SqlDataAdapter("SELECT TBLSTSABIT.*, TBLSTHAR.STHAR_BF FROM TBLSTSABIT, TBLSTHAR WHERE TBLSTSABIT.STOK_KODU=TBLSTHAR.STOK_KODU AND BARKOD1=@barkod", conn))
                        {
                            cmd.SelectCommand.Parameters.AddWithValue("@barkod", barkod.Text);
                            cmd.Fill(tablo);
                        }
                    }
                    dataGridView1.DataSource = tablo;
                    if (tablo.Rows.Count > 0)
                    {
                        textBox1.Text = tablo.Rows[0]["STOK_KODU"].ToString();
                        textBox2.Text = tablo.Rows[0]["STOK_ADI"].ToString();
                        textBox3.Text = tablo.Rows[0]["STHAR_BF"].ToString();
                    }
                    else
                    {
                        MessageBox.Show("Bulunamadı.");
                    }
                    barkod.Clear();
                    barkod.Focus();
                }
            }

    Murat Bey Bu Şekilde uyguladım ve görüntü şu şekilde;

    Bütün kolonları çekiyor. ve 4 satır çekiyor.

    2 Kasım 2018 Cuma 07:06
  • "SELECT TBLSABIT.*, TBLSTHAR.FIYAT FROM TBLSTSABIT LEFT JOIN TABLSTHAR ON TBLSABIT.STOK_KODU=TBLSTHAR.STOK_KODU WHERE BARKOD1=@barkod"

    ifadesinde TBLSABIT.* yerine görmek istediğiniz kolonları yazın.

    Örneğin;

    "SELECT TBLSABIT.STOK_KODU, TBLSABIT.BARKOD1, TBLSABIT_STOK_ADI, TBLSTHAR.FIYAT FROM TBLSTSABIT LEFT JOIN TABLSTHAR ON TBLSABIT.STOK_KODU=TBLSTHAR.STOK_KODU WHERE BARKOD1=@barkod"

    ifadesinde olduğu gibi.


    Sorunuzun yanıtı bu ise "Yanıt olarak işaretle"yerek siz de forumun işleyişine katkıda bulununuz...


    2 Kasım 2018 Cuma 08:29
  • Murat Bey bu şekilde uyguladım ;

    "SELECT TBLSABIT.STOK_KODU, TBLSABIT.STOK_ADI, TBLSTHAR.STHAR_BF FROM TBLSTSABIT LEFT JOIN TBLSTHAR TBLSABIT.STOK_KODU=TBLSTHAR.STOK_KODU WHERE BARKOD1=@barkod"

    Karşılaştığım hata bu;


    2 Kasım 2018 Cuma 09:05
  • ON etiketini unuttuğum için hata vermiş. Kodu düzenledim kullanabilirsiniz.

    Sorunuzun yanıtı bu ise "Yanıt olarak işaretle"yerek siz de forumun işleyişine katkıda bulununuz...

    • Yanıt Olarak İşaretleyen Toprak Volkan 2 Kasım 2018 Cuma 12:56
    2 Kasım 2018 Cuma 09:19