SORU
5 EYLÜL 2009, CUMARTESİ


Satır C SqlDataReader kullanarak dizi nasıl#

Sorum şu satırları sorgu C SqlDataReader kullanarak geri sayısını almak için nasıl#. Bu konuda bazı cevaplar gördüm ama hiçbiri Net Read() yöntemi ile bir döngü yapmak ve bir sayacı artırmak için durumları hariç belirlendi.

Benim sorunum ilk satır sütun adları ve ondan sonraki her satır ile çok boyutlu bir dizi doldurmak için satır veri olmaya çalışıyorum.

Biliyorum ben sadece döküm malzeme Listesi kontrol ve merak etmeyin, ama benim kendi kişisel Yetiştirme ve istiyorum çekin verileri girip dizisi olarak seçiyorum ve ekran içinde farklı biçimlerde.

Sanırım bunu yapamam Read() ve sonra bir artış, çünkü bu şu demek ki aç Read() ve Aç Read() tekrar ulaşmak miktarda satır ve sütun veri.

Neden bahsettiğimi küçük bir örnek sadece

int counter = 0;    

while (sqlRead.Read())
{
    //get rows
    counter  
}

ve bir döngü için sütunlar ve pop çalıştırmak için

something.Read();

int dbFields = sqlRead.FieldCount;

for (int i = 0; i < dbFields; i  )
{
   // do stuff to array
}

CEVAP
5 EYLÜL 2009, CUMARTESİ


Sadece iki seçenek vardır:

  • Tüm satırları (ve sonra da bunları saklamak isteyebilirsiniz okuyarak öğrenin

  • özel bir SELECT COUNT(*) önceden sorgu çalıştırın.

İki kez veri okuyucu döngü geçiyor yeniden yürütmek için sorgu olurdu gerçekten pahalı.

Ve (Pete OHanlon sayesinde) ikinci seçeneği-güvenli eşzamanlılık zaman sadece Anlık veya RepeatableRead yalıtım düzeyi ile. bir hareketi kullanın

Beri istediğin için sona saklamak tüm satırları bellek zaten tek mantıklı seçenek için okuduğum tüm satırlarda esnek depolama (List<> DataTable) ve daha sonra kopya veri için herhangi bir formatta istediğiniz. Bellek işlemi her zaman çok daha etkili olacaktır.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • incognitotraveler

    incognitotra

    27 Mayıs 2010
  • Justin Schenck

    Justin Schen

    24 Kasım 2006
  • Louis C.K.

    Louis C.K.

    18 HAZİRAN 2006