2016-03-20 16 views
1

Object reference not set to an instance of an objectDataTable adresinden DataRow alınırken özel durum alırken, nesne başvurusu özel durum ayarlanmamış. Bunun için herkes çözüm önerebilir.nesne başvuru

deniyorum kod aşağıda gösterilmiştir:

OleDbDataAdapter da = new OleDbDataAdapter("select * from input_alignments", cn); 
DataSet ds = new DataSet(); 
da.Fill(ds); 
DataTable table = ds.Tables["input_alignments"]; 
foreach (DataRow row in table.Rows)//here exception occur 
{ 
sb.Append(row["word1"].ToString(); 
} 

Ne istisna sebebi ne olabilir?

+0

Bize "sb" için bir açıklama gösterebilir misiniz? – Alexei

cevap

2

sorgu yalnızca bir resultset döndürür yana

, sadece veri böyle yüklemiş olabilir:

Ayrıca
OleDbDataAdapter da = new OleDbDataAdapter("select * from input_alignments", cn); 
DataSet ds = new DataSet(); 
da.Fill(ds); 
DataTable table = ds.Tables[0];   // use integer index instead of string one 
foreach (DataRow row in table.Rows) 
{ 
    sb.Append(row["word1"].ToString(); 
} 

, sb'un düzgün şekilde başlatıldığından emin olun.

1

Doldurmadan önce "input_alignments" tablosunu veri kümesine eklemeyi unutmuş gibi görünüyorsunuz.

belgeler burada bu bir örnek verir:

DataSet dataset = new DataSet(); 
dataset.Tables.Add("aaa"); 
adapter.Fill(dataset, "AAA"); // Fills table "aaa" because only one similarly named table is in the DataSet. 

Ne olması muhtemeldir tablo, beyan edilen değil, çünkü sizin foreach döngüsünde bir referans olmayacak olmasıdır. Bunu, eksik olan ad yerine .Tables [0] 'a bir referans kullanarak doğrulamayı deneyebilirsiniz. Burada DataSet.Fill üzerinde

Bütün belgeler(): https://msdn.microsoft.com/en-us/library/y4b211hz(v=vs.110).aspx