none
Ufak bir sql sorusu RRS feed

  • Soru

  • Arkadaşlar belirli bir tarih aralığına göre fiyat almaya çalışıyorum. 

    Mesela eğer period tablomdaki baslangic tarihi ve bitis tarihi doğruysa fiyatı değiştircem. 

    sqlde bi sorgu yazdım ama sanırım doğru değil 

    SqlCommand OdaCmd = new SqlCommand("SELECT * FROM Period WHERE odaCat = @odaCat AND Baslangic>="+DateTime.Now+" AND Bitis<="+DateTime.Now+"",baglanti);
    yardm edebilirmisiniz
    24 Ekim 2015 Cumartesi 09:50

Yanıtlar

  • SqlDataAdapter OdaDa = new SqlDataAdapter(@"SELECT * FROM Period 
    		WHERE odaCat = @odaCat AND 
    		@zaman >= Baslangic AND @zaman <= Bitis",baglanti);
    OdaDa.SelectCommand.Parameters.AddWithValue("@odaCat",OdaKatID);
    OdaDa.SelectCommand.Parameters.AddWithValue("@zaman",DateTime.Now);
    		
    DataTable odaDt = new DataTable();
    OdaDa.Fill(odaDt);
    if (odaDt.Rows.Count > 0)
    {
    	var row = odaDt.Rows[0];
    	Baslangic = (DateTime)row["baslangic"];
    	Bitis = (DateTime)row["bitis"];
    	MessageBox.Show(Baslangic.ToString());
    	MessageBox.Show(DateTime.Now.ToString());
    	txtOdaFiyati.Text = row["yuzde"].ToString();
    }
    else
    { 
    	txtOdaFiyati.Text = Dt.Tables[0].Rows[0]["room_price"].ToString();
    }

    24 Ekim 2015 Cumartesi 11:36
    Yanıtlayıcı

Tüm Yanıtlar

  • 1-@odaCat parametre kullanıyorsun diğerleride neden kullanmıyorsun kullanmıyorsun.

    2-bu şartları sağlayan kaydın varmı yani başlangıç ve bitiş tarihlerin eşit ve büyükse diye

    
    

    kdrgny@outlook.com

    24 Ekim 2015 Cumartesi 10:02
  •   SqlDataAdapter OdaDa = new SqlDataAdapter();
                SqlCommand OdaCmd = new SqlCommand("SELECT * FROM Period WHERE odaCat = @odaCat AND Baslangic>="+DateTime.Now+" AND Bitis<="+DateTime.Now+"",baglanti);
                OdaCmd.Parameters.AddWithValue("@odaCat",OdaKatID);
                OdaDa.SelectCommand = OdaCmd;
                DataSet odaDt = new DataSet();
                OdaDa.Fill(odaDt);
                if (odaDt.Tables[0].Rows.Count > 0)
                {
                    Baslangic = Convert.ToDateTime(odaDt.Tables[0].Rows[0]["baslangic"].ToString());
                    Bitis = Convert.ToDateTime(odaDt.Tables[0].Rows[0]["bitis"].ToString());
                    MessageBox.Show(Baslangic.ToString());
                    MessageBox.Show(DateTime.Now.ToString());
                    txtOdaFiyati.Text = odaDt.Tables[0].Rows[0]["yuzde"].ToString();
    
                }
                else
                { 
                        txtOdaFiyati.Text = Dt.Tables[0].Rows[0]["room_price"].ToString();
                }
    
    Kodun tamamı Bu
    24 Ekim 2015 Cumartesi 10:08
  • SqlDataAdapter OdaDa = new SqlDataAdapter(@"SELECT * FROM Period 
    		WHERE odaCat = @odaCat AND 
    		@zaman >= Baslangic AND @zaman <= Bitis",baglanti);
    OdaDa.SelectCommand.Parameters.AddWithValue("@odaCat",OdaKatID);
    OdaDa.SelectCommand.Parameters.AddWithValue("@zaman",DateTime.Now);
    		
    DataTable odaDt = new DataTable();
    OdaDa.Fill(odaDt);
    if (odaDt.Rows.Count > 0)
    {
    	var row = odaDt.Rows[0];
    	Baslangic = (DateTime)row["baslangic"];
    	Bitis = (DateTime)row["bitis"];
    	MessageBox.Show(Baslangic.ToString());
    	MessageBox.Show(DateTime.Now.ToString());
    	txtOdaFiyati.Text = row["yuzde"].ToString();
    }
    else
    { 
    	txtOdaFiyati.Text = Dt.Tables[0].Rows[0]["room_price"].ToString();
    }

    24 Ekim 2015 Cumartesi 11:36
    Yanıtlayıcı
  • Teşekkürler
    24 Ekim 2015 Cumartesi 11:37
  • Aslında Çetin Hocam Cevabı vermiş

    bende farklı bir yaklaşım olsun diye bunu yazayım dedim burdan Best regards;

    private void button1_Click(object sender, EventArgs e)
            {
                DataSet ds = this.GetSorgu("Select * From Period  where odaCat = @odaId And @Tarih >= TARIH And @Tarih < = TARIH", int.Parse("2072"), DateTime.Now);// DateTime.Parse("02/11/2014"));
                if(ds.Tables[0].Rows.Count>0)
                {
                    foreach (DataRow row in ds.Tables[0].Rows)
                    {
                        txtOdaFiyati.Text = row["yuzde"].ToString();
                    }
                }
                else
                {
                    txtOdaFiyati.Text = ds.Tables[0].Rows[0]["room_price"].ToString();
                }
            }
            public DataSet GetSorgu(string queryString, int odaId, DateTime Trh)
            {
                DataSet ds = new DataSet();
                using (SqlConnection connection = new SqlConnection(@"Data Source=.\SQLEXPRESS;Initial Catalog=DataBase;Integrated Security=True"))
                {
                    SqlDataAdapter da = new SqlDataAdapter();
                    da.SelectCommand = new SqlCommand(queryString, connection);
                    da.SelectCommand.Parameters.AddWithValue("@odaId", typeof(int)).Value = odaId;
                    da.SelectCommand.Parameters.AddWithValue("@Tarih", typeof(DateTime)).Value = Trh;
                    da.Fill(ds);
                    return ds;
                }
            }

    Kolay gelsin;





    24 Ekim 2015 Cumartesi 12:13
  • Kenan, 

    Arkana yaslan, nefes al ve kodu oku :)

    24 Ekim 2015 Cumartesi 12:22
    Yanıtlayıcı
  • Merhaba Hocam ;

    Sanırım yaşlanıyorum hocam:)


    24 Ekim 2015 Cumartesi 12:39