OleDb'yi birçok sayfa içeren bir excel çalışma kitabından okumak için kullanıyorum.
Sayfa adlarını okumam gerekiyor, ancak elektronik tabloda tanımlandıkları sırayla onlara ihtiyacım var; bu yüzden buna benzeyen bir dosyam varsa;
|_____|_____|____|____|____|____|____|____|____|
|_____|_____|____|____|____|____|____|____|____|
|_____|_____|____|____|____|____|____|____|____|
\__GERMANY__/\__UK__/\__IRELAND__/
O zaman sözlüğe ihtiyacım var
1="GERMANY",
2="UK",
3="IRELAND"
Kullanmayı denedim OleDbConnection.GetOleDbSchemaTable()
ve bu bana isimlerin listesini veriyor ama alfabetik olarak sıralıyor. Alfa sıralaması, belirli bir adın hangi sayfa numarasına karşılık geldiğini bilmediğim anlamına gelir. Böylece anlıyorum;
GERMANY, IRELAND, UK
ki sırasını değişti UK
ve IRELAND
.
Sıralanmasını istememin nedeni, kullanıcının ada veya dizine göre bir dizi veri seçmesine izin vermem gerekmesidir; 'ALMANYA'dan İRLANDA'ya kadar tüm verileri' veya 'sayfa 1'den sayfa 3'e kadar olan verileri' isteyebilirler.
Herhangi bir fikir çok takdir edilecektir.
ofiste birlikte çalışma sınıflarını kullanabilirsem, bu çok kolay olurdu. Ne yazık ki, birlikte çalışma sınıfları Windows hizmetleri ve ASP.NET siteleri gibi etkileşimli olmayan ortamlarda güvenilir şekilde çalışmadığı için yapamıyorum, bu yüzden OLEDB kullanmam gerekiyordu.