none
SQL'den çektiğim veriyi if-else ile başka bir veriye atayamıyorum RRS feed

  • Genel Tartışma

  • Merhaba,

    SQLde yarattığım tablolardan bazı veriler çekiyorum.

    lbl1Text.Text = read["Tablo-column2"].ToString();
    lbl2Text.Text = read["Tablo-column3"].ToString();

    Fakat çektiğim bilgiye göre de o bilgiye özgü bir veri gelmesini istiyorum ( mesela malzeme adı geldiğinde farklı bir label'da da o malzemenin ilgili bir verisi gelmeli, mesela ambalaj ebadı )

    Tabi gelmeden önce bir tuşa basacağım.

    Şöyle;

    private void Tuş_Click(object sender, EventArgs e)
            {
               
                if (lbl1Text.Text == "Fresh Air")
                {
                    lbl2TextCurrent.Text = "Ambalaj A";
                }
                else if (lbl1Text.Text == "Mixed Air")
                {
                    lbl2TextCurrent.Text = "Ambalaj B";
                }

    Fakat çalışmıyor. Nerede hata yapıyorum ?

    Not: başka bir form sayfasında label yerine textbox yapınca ( daha doğrusu veriyi el ile girince ) çalışıyor.

    Şimdiden teşekkürler

     

    22 Ocak 2019 Salı 19:35

Tüm Yanıtlar

  • Soru ne yazık ki hiç anlasilmiyor. Nereden ne geliyor, ne yapmak istiyorsun hiç belli degil. Veritabanindaki tablonun ornegini, denediğin kodu, belli ornek degerler ve buna karsilik ne olması gerektiğini yazarsan yardim etme şansı olabilir.
    22 Ocak 2019 Salı 20:30
    Yanıtlayıcı
  • Sen tuşa bastığında sayfa post oluyor o sira label daki veri uçar. Bunu önlemek için

    İf(Page.IsPostBack==false)

    {

    lbl1Text.Text = read["Tablo-column2"].ToString();
    lbl2Text.Text = read["Tablo-column3"].ToString();

    }

    Verini bu şekilde çek.

    23 Ocak 2019 Çarşamba 20:07
  • Sen tuşa bastığında sayfa post oluyor o sira label daki veri uçar. Bunu önlemek için

    İf(Page.IsPostBack==false)

    {

    lbl1Text.Text = read["Tablo-column2"].ToString();
    lbl2Text.Text = read["Tablo-column3"].ToString();

    }

    Verini bu şekilde çek.

    Form ile post'un ne ilgisi var? Hadi diyelim ki var, bu neyin cevabi, veri nereye uçuyor? Bu kadarını zaten en basta yazmış.

    23 Ocak 2019 Çarşamba 20:21
    Yanıtlayıcı
  • Teşekkürler öncelikle.

    Yeni bir kullanıcı olduğum için bilindik türde anlatamamış olabilirim.

    Şöyle özetleyeyim;

    3 farklı türde makine olsun. her makine için özelliklerini textbox ve combobox'lar ile ayrı ayrı tablolara very

    giriyorum.

    Sonra bu özelliklere bakarak da bir malzeme listesi çıkaracağım.

    Makine adını combobox'tan seçtiğimde SQL'deki tablolardan ilgili özellik verilerim istediğim form sayfasında geliyor. ( buraya kadar herşey çalışıyor )

    Ama gelen veriler için ise;

    Mesela A verisi geldi ise yanına AA, 

    B verisi geldi ise de yanına BB yazdırmak istiyorum.

    Dediğiniz gibi sayfa yenilendiğinde olan veriler uçuyor olabilir.

    Kodum şu şekilde idi;

    private void Material_Click(object sender, EventArgs e)
            {
               
                if (lblDamperText.Text == "Fresh Air")
                {
                    lblDamperTextCurrent.Text = "2 adet On/Off Motoru";
                }
                else if (lblDamperText.Text == "Mixed Air")
                {
                    lblDamperTextCurrent.Text = "3 adet Oransal Damper Motoru";
                }
               
            }

    23 Ocak 2019 Çarşamba 20:28
  • Ucan bir şey yok da, soru hala anlasilmiyor. Nereden nasıl veri çekiyorsunuz? Cekince olmayan tam olarak ne?

    Yukaridaki kodda ne oluyor, ya da olmuyor? Cektiginiz veri ile ilgisi ne? Orada sabit yazi var.

    Sorunun SQL ile ilgisi gercekten var mi? Hiç veri ile ilgili bir kod yok ortada.

    23 Ocak 2019 Çarşamba 20:34
    Yanıtlayıcı
  • İlginiz için tekrar teşekkür ederim.

    Hesabım onaylanmamış sanırım, screenshot koyamadım.

    Yerine işlem yaptırmak istediğim form sayfasının kodunu ekliyorum.

    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.Sql;
    using System.Data.SqlClient;
    
    
    namespace prologic
    {
        public partial class Form13 : Form
        {
            public Form13()
            {
                InitializeComponent();
            }
            SqlConnection baglanti = new SqlConnection("Data Source=LAPTOP-QLL9638S\\SQLEXPRESS;Initial Catalog=prologic;Integrated Security=True");
            private void Form13_Load(object sender, EventArgs e)
            {
                baglanti.Open();
                SqlCommand komut = new SqlCommand("select *from Table1", baglanti);
                SqlDataReader read = komut.ExecuteReader();
                while (read.Read())
                {
                    comboBox1.Items.Add(read["AhuName"].ToString());
                    
                }
                baglanti.Close();
            }
    
            private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
            {
                baglanti.Open();
                SqlCommand cmd = new SqlCommand("select *from Table1 where AhuName=@AhuName", baglanti);
                SqlParameter pp = new SqlParameter("@AhuName", comboBox1.Text.Trim());
                cmd.Parameters.Add(pp);
                SqlDataReader read = cmd.ExecuteReader();
    
                while (read.Read())
    
                {
                    
                    lblDamperText.Text = read["AhuTypeSelection"].ToString();
                    lblFilterText.Text = read["AhuFilterSelection"].ToString();
                    lblFrostText.Text = read["AhuFrostSelection"].ToString();
                    lblSupAirText.Text = read["AhuSupAirSelection"].ToString();
                    lblRetAirText.Text = read["AhuRetAirSelection"].ToString();
                    lblOutAirText.Text = read["AhuOutAirSelection"].ToString();
                    lblMixAirText.Text = read["AhuMixAirSelection"].ToString();
                    lblExCAirTempText.Text = read["AhuExCAirSelection"].ToString();
                    lblDeHumPrevAirTempText.Text = read["AhuDeHumAirSelection"].ToString();
                    lblSupAirPresText.Text = read["AhuSupAirPresSelection"].ToString();
                    lblRetAirPresText.Text = read["AhuRetAirPresSelection"].ToString();
                    lblRetAirQualText.Text = read["AhuRetAirQualitySelection"].ToString();
                    lblHeatText.Text = read["AhuHeatSelection"].ToString();
                    lblCoolText.Text = read["AhuCoolSelection"].ToString();
                                    
                }
                baglanti.Close();
            }
    
            private void Material_Click(object sender, EventArgs e)
            {
                
                if (lblDamperText.Text == "Fresh Air")
                {
                    lblDamperTextCurrent.Text = "2 adet On/Off Motoru";
                }
                else if (lblDamperText.Text == "Mixed Air")
                {
                    lblDamperTextCurrent.Text = "3 adet Oransal Damper Motoru";
                }
                
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                Form10 ahusecim = new Form10();
                ahusecim.Show();
                this.Hide();
            }
    
            
            
        }
    }
    

    23 Ocak 2019 Çarşamba 20:43
  • Bilmece çözmeye devam :) Kodda neyi soruyorsunuz? lblDamperText.Text'e sonuçta sabit deger atiyorsunuz.

    Kodda garip bir şey var mi diye soruyorsanız, evet, while (read.Read()) garip olmuş. Bir dongu içerisinde tekrar tekrar bir dizi label'in text'ini veritabanından gelen degerlerle değiştiriyorsunuz. Oysa tek satir alıp bir kere değiştirseniz daha iyi. Zaten tek satir getiren bir sorgu ise while'a ne gerek var.

    Isterseniz Teamviewer ID verin online bakalım, belki o zaman anlasilir.
    23 Ocak 2019 Çarşamba 20:55
    Yanıtlayıcı
  • size özel mesaj ile göndermek istedim fakat menülerde göremedim.

    mail adresiniz var ise yollayabilirim.

    Tekrar teşekkürler

    23 Ocak 2019 Çarşamba 21:07
  • Mail adresim cetinbasoz at gmail. Oyle public yayınlamak istemedim.
    23 Ocak 2019 Çarşamba 21:08
    Yanıtlayıcı