这个应该是 栈 和堆的问题 , 函数的数据 的指针是 指向 ds的 如果 你把ds的"值" clear() 了的话,它当然找不到 ds这个对象了
解决方法 : DataTable dt = new DataTable();
for(int i=0; i<ds.tables["area"].Columns.Count; I++)
{
dt.Columns.Add(ds.tables["area"].Columns[i].ColumnsName.ToString());
}
for(int j=0; j<ds.tables["area"].Rows.Count; j++)
{
DataRow dr = dt.NewRow();
dr["Columns1"] = ds.tables["area"].Rows[j]["Columns1"].ToString();
dr["Columns2"] = ds.tables["area"].Rows[j]["Columns2"].ToString();
........ ..............
dt.Rows.Add(dr);
}
return dt;
如果要用ds 数据的话,就可以 直接 用 dt了 这个时候 你在 执行
ds.tables["area"].clear()
就可以了