2010-11-20 10 views
2

.NET 3.5 projesi ile çalışıyorum ve bir DataTable'ım var, bir MySQL tablosundan dolduruyorum. Tabloda, aramam gereken bir "e-posta" sütunu var. Açık bir şekilde birincil anahtarı ayarlıyorum ve aşağıdaki kod tabloda 422 veya daha fazla satır elde edene kadar iyi çalışıyor.DataTable.Rows.Find, tablo çok büyük olduğunda "Tabloda birincil anahtar yok" hatası veriyor

object[] searchfor = new object[] { row["email"] }; 
DataColumn[] pk = new DataColumn[] { dtAccounts.Columns["email"] }; 
dtAccounts.PrimaryKey = pk; 
match = dtAccounts.Rows.Find(searchfor); 

Belki de 422'nci kayıtta bazı kötü veriler olduğunu düşündüm, ancak doğrulanmadığını doğruladım. Aldığım hata, "Tablonun birincil anahtarı yok", ki bunu açıkça yapıyor.

+0

Sadece kodunuzu 500 girdiyle el ile oluşturduğum bir tablo üzerinde test ettim ve hatayı almadım. Kodunuzu bu kapsamdan iki kez kontrol edin. – BeemerGuy

+0

* Birincil anahtarı yoksa, bu bir tablo değil! * - Bazı SQL guru :-) –

cevap

0

Benim hatam. DataTable'ı web servisi aracılığıyla doldurdum ve 422 satıra ulaştığımda mesaj boyutu çok büyüktü ve DataTable'ım hiç dolmadı. Sadece app.config dosyasındaki maxReceivedMessageSize değerini artırmam gerekiyordu. Hata mesajı bu durumda yardımcı olmaktan daha azdı!

İlgili konular