Hello my dear programmer friends,
I recently need to fetch date information from database (yyyy-mm-dd). I have saved my date information like this, for example 01 April 2014 <2014-04-01>
I have a calender in my web page in which I need to fetch information by using choosen date. Basically like this: It is a reservation page. Client has to specify a date. According to that date, he will be able to choose what is available.
This is what works:
SqlCommand cmd = new SqlCommand("Select Randevular.saatID,randevuSaat,hizmetAdi,hizmetSure,Randevular.personelID,personelAdSoyad,randevuTarih from Personeller Inner Join Randevular on Randevular.personelID=Personeller.personelID Inner Join Saatler on Randevular.saatID=Saatler.saatID Inner Join Hizmetler on Randevular.hizmetID=Hizmetler.hizmetID Where Randevular.personelID=7 and Randevular.randevuTarih='2014-04-01'", cnn);
But in here, date is already specified in the source code. I tried to convert the date information I got in the SQL, but it didn't worked. Like this:
Session["cid"] = Convert.ToInt32(drdCalisanSec.SelectedValue); Session["tarih"] = Calendar1.SelectedDate; SqlCommand cmd = new SqlCommand("Select Randevular.saatID,randevuSaat,hizmetAdi,hizmetSure,Randevular.personelID,personelAdSoyad,CONVERT(nvarchar,randevuTarih,106) as RandevuTarihi from Personeller Inner Join Randevular on Randevular.personelID=Personeller.personelID Inner Join Saatler on Randevular.saatID=Saatler.saatID Inner Join Hizmetler on Randevular.hizmetID=Hizmetler.hizmetID Where Randevular.personelID='" + Session["cid"] + "' and Randevular.randevuTarih='"+Session["tarih"]+"' ", cnn);
After that I tried an another solution. I tried to convert the date I got in C# by doing this:
string dateForSql = ""; Array months = Array.CreateInstance( typeof(String), 12 ); months.SetValue( "Ocak", 0 ); //January months.SetValue( "Şubat", 1 ); //February months.SetValue( "Mart", 2 ); //March months.SetValue( "Nisan", 3 ); //April months.SetValue( "Mayıs", 4 ); //May months.SetValue( "Haziran", 5 ); //June months.SetValue( "Temmuz", 6 ); //July months.SetValue( "Ağustos", 7 ); //August months.SetValue( "Eylül", 8 ); //September months.SetValue( "Ekim", 9 ); //October months.SetValue( "Kasım", 10 ); //December months.SetValue( "Aralık", 11 ); //November txtRanTarih.Text = Calendar1.SelectedDate.ToString("dd MMMM yyyy"); Session["tarih"] = Calendar1.SelectedDate; Label1.Text = Session["tarih"].ToString(); string date = txtRanTarih.Text; dateForSql = dateForSql + date.Substring(date.Length-4) + "-"; foreach (string month in months) { if (date.Contains(month)) { if (Array.IndexOf(months, month) + 1 < 10) { dateForSql = dateForSql + "0" + (Array.IndexOf(months, month) + 1).ToString() + "-"; break; } else { dateForSql = dateForSql + (Array.IndexOf(months, month) + 1).ToString() + "-"; break; } } } dateForSql = dateForSql + date.Substring(0, 2);
I put the <dateForSql> variable into the Sql Command like this:
SqlCommand cmd = new SqlCommand("Select Randevular.saatID,randevuSaat,hizmetAdi,hizmetSure,Randevular.personelID,personelAdSoyad,CONVERT(nvarchar,randevuTarih,106) as RandevuTarihi from Personeller Inner Join Randevular on Randevular.personelID=Personeller.personelID Inner Join Saatler on Randevular.saatID=Saatler.saatID Inner Join Hizmetler on Randevular.hizmetID=Hizmetler.hizmetID Where Randevular.personelID='" + Session["cid"] + "' and Randevular.randevuTarih='"+dateForSql+"' ", cnn);
But non of these has worked. Can you guys help me with this?