c# access db den 2 tarih arası sorgulama problem li?

Başlatan forumsad, 21 Kasım 2012, 21:15:12

forumsad

            string dt1 = dateTimePicker1.Value.ToShortDateString();
            dt1 = dt1.Replace('.', '/');
            string dt2 = dateTimePicker2.Value.ToShortDateString();
            dt2 = dt2.Replace('.', '/');



            dtst.Clear();  //Grid temizle
            OleDbConnection conn = system.baglanAccess();
            string txtsorgu = "SELECT * FROM tblSevkiyat WHERE Tarih Between '" + dt1 + "' and '" + dt2 + "'  ";


            //OleDbDataAdapter ara = new OleDbDataAdapter("SELECT * FROM kultur WHERE tarih > '#" + tr1 + "#' AND tarih <'#" + tr2 + "#'", turizm_baglan);  
            
            OleDbDataAdapter adtr = new OleDbDataAdapter(txtsorgu, conn);
            adtr.Fill(dtst, "tblSevkiyat");
            dataGridView1.DataSource = dtst.Tables["tblSevkiyat"];
            adtr.Dispose();
            conn.Close();


yukardaki kod bi çalışıyor bi çalışmıyor bazı satırları almıyor bir dengesizlik var anlayamadım
bilği sahibi olan var mı acaba

saygılar

muhittin_kaplan


forumsad

string txtsorgu = "SELECT * FROM tblSevkiyat WHERE Tarih Between '" & dt1 & "' and '" & dt2 & "'  ";

//hata veriyor hocam

fatih6761

@muhittin hocam C#'da string'leri + işleci ile birleştirebilirsiniz. Yani + işlemi String Format işlemi yapar. & ile işlevi çok farklı. Veritabanı ile ilgili bir sorun olabilir. Hangi Office sürümünü kullanıyorsunuz? Güncelleştirmeler yüklü mü?

forumsad

vt yi office2003 de oluşturdum

c# ile kodluyorum vs2010

ULAGA

Sanırım, tamamen tarih formatları ile ilgili bir sorun...

Seckin ALAN

Kar taneleri ne güzel anlatıyor, birbirlerine zarar vermeden de yol almanın mümkün olduğunu.. Mevlana

forumsad


RcALTIN

#8
tsql sorgusu içinde tarihlerin başına ve sonuna ' (kesme işareti) yerine # koymayı deneyin, hafızam beni yanıltmıyorsa benimde vaktiyle başıma gelmişti ve böyle basit bir sorun çıkmıştı altından... access de bazı syntax farklılıkları var. sorguda saat bilgisinin verilmiyor oluşu da sıkıntı yaratıyor olabilir, hiç yoktan bir 00:00:00 eklemek gerekebilir, eğer ToShortDateString() fonksiyonundan dönmüyorsa. en olmadı tüm değerleri alıp DateTime.Compare() ve TimeSpan sınıfını/fonksiyonunu kullanarak c# tarafında işleyip istemediğiniz verileri kaldırarak sorunu geçici olarak çözebilirsiniz ama doğrusu bu olmaz kesinlikle...

ayrıca eğer kullanmanızın özel bir nedeni yoksa access yerine sqlite kullanmanızı öneririm, programınızın taşınabilirliği açısından.
KİMSEYİ ENGELLEDİĞİM YOK, ÖZEL İLETİ DEVRE DIŞI !

forumsad

düzeldi saat de eklemek lazım mış..

ama sqllite merak ettim araştıracağım

sql manegement stuio da bu veritanbanını kullanabiliyormuyuz?

saygılar

RcALTIN

Alıntı yapılan: forumsad - 23 Kasım 2012, 22:56:15
düzeldi saat de eklemek lazım mış..

ama sqllite merak ettim araştıracağım

sql manegement stuio da bu veritanbanını kullanabiliyormuyuz?

saygılar

sqlite tsql uyumlu fakat aslında dosyalama mantığıyla veri tutuyor, yani herhangi bir database engine'i yok. dolayısıyla son kullanıcının da bilgisayarında herhangi birşey yüklü olması gerekmiyor, o yüzden tercih ediliyor zaten... ama bazı dezavantajları var bunun, mesela veri okuken sqlden daha hızlı olmasına karşın, yazarken biraz daha yavaş kalıyor, yanılmıyorsam tablolar truncate edilemiyor gibi gibi. bir araştırın işinizi görüyorsa kullanın...
KİMSEYİ ENGELLEDİĞİM YOK, ÖZEL İLETİ DEVRE DIŞI !

forumsad

biliğim kadarıyla

c# framework4 ile yazılam bir programın yeni yüklenmiş bir xp de çalışması için
framework4  yüklemeliyiz ve sql epress yüklemeliyiz   
değil mi?

ama sqlLite yüklersek sadece framework4 yüklemek yeterli sanırım

saygılar

RcALTIN

Alıntı yapılan: forumsad - 23 Kasım 2012, 23:09:24
biliğim kadarıyla

c# framework4 ile yazılam bir programın yeni yüklenmiş bir xp de çalışması için
framework4  yüklemeliyiz ve sql epress yüklemeliyiz   
değil mi?

ama sqlLite yüklersek sadece framework4 yüklemek yeterli sanırım

saygılar

evet öyle, framework zaten şart. fakat yeni işletim sistemleri(win7, win8)  dağıtım sırasındaki son sürüm ile yüklü geliyor...

ms office yüklenmemiş bir bilgisayarca access db dosyaları da çalışmaz, haricen access database engine yüklemek gerekir.
sql server için, express sürümü değilse de en azından management studio içermeyen çekirdek yüklemeyi yapmak gerekiyor, ki aslında ona "sql server" deniyor diye biliyorum.
KİMSEYİ ENGELLEDİĞİM YOK, ÖZEL İLETİ DEVRE DIŞI !

forumsad

hiç biriyle ugraşmadan en iyisi bildiğimiz yapmak

sqlexpress ve framework4 yüklemeyi tamamla program tam kapasite devam
aslında access db kullandığım için pişman oldum ama proje ilerledi geri dönmeyede eriniyorum  olmazsa döneceğiz artık

mesela şöyle bir sorunum var

diyelimki bir su tankınız var su satışı yapıyorsunuz

satış tablonuzda kalan miktar kolonu var 
toplam mevcut 5000 lt  olsun

1--satış 500  kalan:4500
2- satış 1000 kalan:3500
3-satış  200  kalan:3200

vb olsun
diyelimki 4500 de hata yaptınız miktarı yanlış girdiniz açıp düzelttiniz  4200 yaptınız   o zaman aşagıdaki tüm kalan mevcutların yeniden
değiştirilmesi lazım   bu sorunu nasıl çözeceğim bilemiyorum

saygılar

muhittin_kaplan

tarihle alakalı sorgulamalar benim için genelde problem olmuştur. tarih çeşidi bile sıkıntılıdır. 11/12/2012 mi 12.11.2012 gibi. kullanıcının hangisini kullandığını bilemiyorsunuz.
bu gibi sorunları ' yada # gibi sorunları aşmak için timeserial yada dateserial kullanırdım.

diğer sorun için,
ben olsam değeri değiştirir, önceki değer ile sonraki değer arasındaki farkı bulur, SQL de update ile tümüne uygulardım.
önceki değer 4500
düzeltilen değer 4200
düzeltilen değer -300

UPDATE personel SET maas=maas+100 WHERE ID=6


http://ozguryaman.com/sqlde-update-komutu/