none
Tarih ve çalışana göre gridview içine kayıtları getirirken Sql Sorguda tarih convert etmede sorun yaşıyorum? RRS feed

  • Soru

  • çalışanı dropdoawn'dan tarihide calendar ile seçip bu kritere göre veri tabanındaki kayıtları gridview içine getirmek istiyorum ama tarih kısmını nasıl convert edip sorguda nasıl yazabilirim denemelerim sonuç vermedi.

    Sql tarafında bu sorguyu kullandığımda sorunsuz geliyor fakat c# tarafında nasıl yapacağım konusunda yardımlarınızı istiyorum.

    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'


    kod tarafında uyguladığım kod ise şu şekilde

    ("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='" + Session["cid"] + "'  and Randevular.randevuTarih='"+Session["tarih"]+"' ", cnn);



    31 Mart 2014 Pazartesi 17:24

Yanıtlar

  • C# tarafında kesinlikle parametre kullanmalısınız.

    Session'daki tarih ve cid alanı, veri tabanınızdaki personelID ve Tarih alanlarıyla aynı tipte olmalıdırlar.

    SqlConnection cnn= new SqlConnection("BaglantiAdresiniz");
    SqlCommand com = 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=@personel  and Randevular.randevuTarih=@Tarih", cnn);
    com.Parameters.AddWithValue("@personel",Session["cid"]);
    com.Parameters.AddWithValue("@Tarih",Session["tarih"]);
    cnn.Open();
    SqlDataReader dr = com.ExecuteReader();
    if(dr.Read())
    {
    //Yapacağınız işlemler.
    }
    cnn.Close();
    


    Microsoft bu servisi kullanıcılarına yardım etme, Microsoft urunleri ve teknolojileriyle ilgili bilgi bankasını genişletme amacıyla ucretsiz sunmaktadır. Bu icerik olduğu gibi benim tarafımdan hazırlanmış olup Microsoft tarafından herhangi bir sorumluluk ustlenildiği anlamına gelmez. Iletişim: Mail Gönder

    • Yanıt Olarak Öneren CetinBasoz 1 Nisan 2014 Salı 10:41
    • Yanıt Olarak İşaretleyen Özgür Tekbaş 7 Nisan 2014 Pazartesi 06:12
    1 Nisan 2014 Salı 06:25
    Moderatör

Tüm Yanıtlar

  • C# tarafında kesinlikle parametre kullanmalısınız.

    Session'daki tarih ve cid alanı, veri tabanınızdaki personelID ve Tarih alanlarıyla aynı tipte olmalıdırlar.

    SqlConnection cnn= new SqlConnection("BaglantiAdresiniz");
    SqlCommand com = 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=@personel  and Randevular.randevuTarih=@Tarih", cnn);
    com.Parameters.AddWithValue("@personel",Session["cid"]);
    com.Parameters.AddWithValue("@Tarih",Session["tarih"]);
    cnn.Open();
    SqlDataReader dr = com.ExecuteReader();
    if(dr.Read())
    {
    //Yapacağınız işlemler.
    }
    cnn.Close();
    


    Microsoft bu servisi kullanıcılarına yardım etme, Microsoft urunleri ve teknolojileriyle ilgili bilgi bankasını genişletme amacıyla ucretsiz sunmaktadır. Bu icerik olduğu gibi benim tarafımdan hazırlanmış olup Microsoft tarafından herhangi bir sorumluluk ustlenildiği anlamına gelmez. Iletişim: Mail Gönder

    • Yanıt Olarak Öneren CetinBasoz 1 Nisan 2014 Salı 10:41
    • Yanıt Olarak İşaretleyen Özgür Tekbaş 7 Nisan 2014 Pazartesi 06:12
    1 Nisan 2014 Salı 06:25
    Moderatör
  • Barış bey çok çok teşekkürler artık geliyor. Bir sorunum daha çıktı ilk önce veritabanına kayıtları elle girmiştim şimdi bilgileri alıp parametre ile veritabanına aynı anda iki tabloya kayıt yaptırmak istediğimde bir hatam oluşuyor.

    Bu kısmı nasıl yazmam gerekir? tekrar teşekkürler.

    Server Error in '/' Application.

    Incorrect syntax near the keyword 'Select'.
    Incorrect syntax near ')'.

    Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

    Exception Details: System.Data.SqlClient.SqlException: Incorrect syntax near the keyword 'Select'.
    Incorrect syntax near ')'.

    Source Error: 
    Line 232:            cnn.Open();
    Line 233:            //Session["mid"] = musteriekle.ExecuteScalar();
    Line 234:            musteriekle.ExecuteNonQuery();
    Line 235:            cnn.Close();
    Line 236:            cnn.Dispose();

    Kod kısmı alttaki şekilde,

    SqlCommand musteriekle = new SqlCommand("Insert into Musteriler (musteriAdSoyad,musteriTel,musteriMail) Values (@ad,@tel,@mail); Insert into Randevular (musteriID,hizmetID,personelID,saatID,randevuTarih) Values (Select IDENT_CURRENT('Musteriler'),@hizID,@perID,@saatID,@ranTarih)", cnn);

               musteriekle.Parameters.AddWithValue("@ad",txtMusAdSoyad.Text);
                musteriekle.Parameters.AddWithValue("@tel",txtMusTel.Text);
                musteriekle.Parameters.AddWithValue("@mail",txtMusMail.Text);
                musteriekle.Parameters.AddWithValue("@hizID", Session["hid"]);
                musteriekle.Parameters.AddWithValue("@perID", Session["cid"]);
                musteriekle.Parameters.AddWithValue("@saatID", Session["sid"]);
                musteriekle.Parameters.AddWithValue("@ranTarih", Calendar1.SelectedDate);
                cnn.Open();

                musteriekle.ExecuteNonQuery();

                cnn.Close();
                cnn.Dispose();
                musteriekle.Dispose();

    1 Nisan 2014 Salı 15:53
  • Sql cümlende fazladan ) var. Bundan dolayı ExecuteNonQuery kısmında hata veriyor. Şöyle denermisin

    SqlCommand musteriekle = new SqlCommand("Insert into Musteriler (musteriAdSoyad,musteriTel,musteriMail) Values (@ad,@tel,@mail); Insert into Randevular (musteriID,hizmetID,personelID,saatID,randevuTarih) Values ((Select IDENT_CURRENT('Musteriler')),@hizID,@perID,@saatID,@ranTarih)", cnn);


    Microsoft bu servisi kullanıcılarına yardım etme, Microsoft urunleri ve teknolojileriyle ilgili bilgi bankasını genişletme amacıyla ucretsiz sunmaktadır. Bu icerik olduğu gibi benim tarafımdan hazırlanmış olup Microsoft tarafından herhangi bir sorumluluk ustlenildiği anlamına gelmez. Iletişim: Mail Gönder

    2 Nisan 2014 Çarşamba 06:06
    Moderatör