• 11-01-2011, 03:39:37
    #1
    Üyeliği durduruldu
    s.a.

    2 sorum var yardım ederseniz sevinirim... Access 2007 de çalışıyorum

    ilk sorum su arkadaşlar, ilçelere oteller ekledim, comboboxta ilçeleri listeliyorum, ilçe seçip arama butonuna basınca listbox da o ilçedeki otelleri çıkartıyor.

    private void otelarabuton_Click(object sender, EventArgs e)
            {
                
                int ilce_id = Convert.ToInt32(comboBox1.SelectedValue);
                OleDbDataAdapter otelara = new OleDbDataAdapter("SELECT * FROM oteller WHERE ilce = "+ilce_id+"", turizm_baglan);
                OleDbCommandBuilder otelara_komut = new OleDbCommandBuilder(otelara);
                DataSet oa_sonuc_set = new DataSet();
                DataTable oa_sonuc_table = new DataTable();
                otelara.Fill(oa_sonuc_set);
                otelara.Fill(oa_sonuc_table);
                if (oa_sonuc_table.Rows.Count == 0)
                {
                    MessageBox.Show("Bu ilçede otel bulunmamaktadır!");
                }
                else
                {
    
                    listBox1.DataSource = oa_sonuc_set.Tables[0];
                    listBox1.DisplayMember = oa_sonuc_table.Columns["oteladi"].ColumnName;
                    listBox1.ValueMember = oa_sonuc_table.Columns[0].ColumnName;
                }
            
           }
    buraya kadar birsey yok..

    benim istediğim, listelenen otellerden herhangi birine tıklanınca yanda bulunan label'larda o otele ait bilgilerin listelenmesi... onuda söyle yapıyorum...

    private void listBox1_DoubleClick(object sender, EventArgs e)
            {
                label3.Visible = true;
                label4.Visible = true;
                label5.Visible = true;
                label9.Visible = true;
                linkLabel1.Visible = true;
                pictureBox1.Visible = true;
                
                OleDbDataAdapter otel_bilgi = new OleDbDataAdapter("SELECT * FROM oteller WHERE oteladi = '" + listBox1.SelectedValue.ToString() + "'", turizm_baglan);
                OleDbCommandBuilder ob_komut = new OleDbCommandBuilder(otel_bilgi);
                DataTable otel_bilgi_table = new DataTable();
                otel_bilgi.Fill(otel_bilgi_table);
                label9.Text = Convert.ToString(otel_bilgi_table.Rows[osayi]["oteladi"]);
                linkLabel1.Text = Convert.ToString(otel_bilgi_table.Rows[osayi]["link"]);
                pictureBox1.ImageLocation = Convert.ToString(otel_bilgi_table.Rows[osayi]["otelresim"]);
                label9.Text = listBox1.SelectedIndex.ToString();
            }
    hata su; otellerden herhangi birine tıklanınca resimdeki hatayı alıyorum.


    listboxta bir otel seçilince, yine veritabanında arama yapıyor ve datatable a aktarıyorum. bunun baska bir yolu var mı ? yada hatam nerede?

    -----------------------------------------------------------------------------------

    2. sorum

    2 datetimepicker ım var, bunlarda seçilen iki tarih ile, veritabanında bu iki tarih arasında arama yapıyorum...

    private void button8_Click(object sender, EventArgs e)
            {
                
                string tr1 = dateTimePicker1.Value.Date.ToString();
                string tr2 = dateTimePicker1.Value.Date.ToString();
                string tar1 = tr1.Replace(" 00:00:00", "");
                string tar2 = tr2.Replace(" 00:00:00", "");
                label18.Text = tar1;
                label19.Text = tar2;
                OleDbDataAdapter ara = new OleDbDataAdapter("SELECT * FROM kultur WHERE tarih BETWEEN '"+tar1+"' AND '"+tar2+"'", turizm_baglan);
                OleDbCommandBuilder arakomut = new OleDbCommandBuilder(ara);
                DataSet arasonuc = new DataSet();
                ara.Fill(arasonuc);
    
                
                
            }
    fakat şu şekilde bir hata alıyorum;



    bunda nerede hata var ? sonuçları yine listbox a aracam. ama table ' da hata veriyor...

    dogru arama şekli nedir acaba ? teşekkurler...
  • 11-01-2011, 09:13:21
    #2
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Hocam kayıtları görüntülemek için datagridview mi kullanıyorsun yoksa listbox mı bunuda belirtirsen 1. soruna yardımcı olmaya çalısayım
  • 11-01-2011, 12:24:48
    #3
    Üyeliği durduruldu
    Burhan_957 adlı üyeden alıntı: mesajı görüntüle
    Hocam kayıtları görüntülemek için datagridview mi kullanıyorsun yoksa listbox mı bunuda belirtirsen 1. soruna yardımcı olmaya çalısayım
    listbox
  • 11-01-2011, 12:34:27
    #4
    Şansınızı birde burda deneyin ben pek anlamam c# dan ama verdiğim linkte anlayan uzman arkadaşlar yer almaktadır.
  • 11-01-2011, 15:13:48
    #5
    1. hatan, elindeki tabloda hiç row yok, yani bir otel bulamıyor yada herneyse bişey bulamıyor o yüzden hata vermiş. row 0 olduğundan dolayı bu da içi boş demektir. önce tabloya verileri aktarıp aktarmadığını kontrol et

    2. hatan da stringi tarih olarak çevirmeye çalışmışsın, kafana göre 00:00 eklemişsin..
    buna gerek yok.. sql koduna direk datetimepicker in value değerini ver (stringe de çevirebilirsin direk.) label e aktarıp 00:00 ekleyerek yapmana gerek yok...
  • 11-01-2011, 20:10:02
    #6
    Üyeliği durduruldu
    ertan2002 adlı üyeden alıntı: mesajı görüntüle
    1. hatan, elindeki tabloda hiç row yok, yani bir otel bulamıyor yada herneyse bişey bulamıyor o yüzden hata vermiş. row 0 olduğundan dolayı bu da içi boş demektir. önce tabloya verileri aktarıp aktarmadığını kontrol et

    2. hatan da stringi tarih olarak çevirmeye çalışmışsın, kafana göre 00:00 eklemişsin..
    buna gerek yok.. sql koduna direk datetimepicker in value değerini ver (stringe de çevirebilirsin direk.) label e aktarıp 00:00 ekleyerek yapmana gerek yok...
    oteller tablosunda veri var...

    ayrıca 00:00:00 ları eklemiyorum, siliyorum hocam..

    veritabanındaki tabloda 09.01.2011 diye tutuluyor tarihler, datetimepickerdan ise 00:00:00 ekli olarak geldiği için tarihler, ben 00:00:00 ları siliyorum...
  • 12-01-2011, 09:45:34
    #7
    1. Sorunu şu şekilde giderebilirsin
    label1.Text = listBox1.SelectedItem.ToString();
    bu kodu listbox'ın click eventine yazarsan işini görür. listboxtaki veriyi label e aktarır.
  • 13-01-2011, 16:32:40
    #8
    Rootx in verdiği sitede bu sorun çözülmüştür arkadaşlar merak edenler bakabilir