0
我有一個處理datareading作爲這樣一類行(注意ischanged是我養指示新行的可用性的事件)DataReader的飼養DataGridView控件 - 由行
public DataRow FetchNext()
{
DataRow drow = dt.NewRow();
if (dr.Read() && dr.HasRows) //this will loop through rows unless cancel is clicked
{
try
{
for (int i = 0; i < listCols.Count; i++)
{
drow[(DataColumn)listCols[i]] = dr[i];
}
dt.ImportRow(drow);
totalRowCount++;
this.isChanged();
return drow;
}
catch (Exception ex)
{
throw;
}
}
else
{
return drow;
}
}
另一類使用這個類實現讀取行並將它們插入到在DataGridView如下(BS是我的BindingSource這勢必數據表DT)
private void buttonGo_Click(object sender, EventArgs e)
{
myrow = p.FetchNext();
this.dt = p.dt.Copy();
bs.DataSource = dt;
dataGridViewMyData.DataSource = bs;
bs.ResetBindings(false);
}
private void handleChanged()
{
bs.ResetBindings(false);
dt.Rows.Add(p.FetchNext());
}
當我火了一切,我得到:
System.StackOverflowException was unhandled
_HResult=-2147023895
任何幫助,將不勝感激。
哪一行代碼產生異常? – 2014-10-27 13:12:08
在fetchnext() – Cogent 2014-10-27 13:17:58
for循環將此'dt.Rows.Add(p.FetchNext());'提高'handleChanged'事件?如果是這樣,它是一個無盡的循環.. – TaW 2014-10-27 14:36:24