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